我是靠谱客的博主 高挑芹菜,最近开发中收集的这篇文章主要介绍Android入门笔记之状态栏通知,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

<1>简介

Android系统的状态栏(Status Bar)中有一个创新UI设计,这就是可以下拉的通知提示。当系统有一些消息要通知用户时,例如,收到短信、电子邮件、有未接来电时,都会把信息作为通知(Notification)发送给用户。

Status Bar 增加了一个图标到系统状态栏中,还有文本信息(可以不选),增加Notification信息到Notification窗口。你还可以安装Notification利用的声音,震动,设备上闪关灯来提醒用户。 

Notification与Toast都可以起到通知、提醒的作用。但它们的实现原理和表现形式却完全不一样。

Toast其实相当于一个组件(Widget)。有些类似于没有按钮的对话框。而Notification是显示在屏幕上方状态栏中的信息。

Notification需要用NotificationManager来管理,而Toast只需要简单地创建Toast对象即可。

 

<2>关键步骤

Noitficion的构造函数已经过时。      The Notification.Builder hasbeen added to make it easier to construct Notifications.

 

创建 status bar notification:

1.NotificationManager得到一个参考:

NotificationManager mNotificationManager  = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

 

2.创建一个Notification对象。每一个Notification对应一个Notification对象。在这一步需要设置显示在屏幕上方状态栏的通知消息、通知消息前方的图像资源ID和发出通知的时间。

       int icon = R.drawable.notification_icon; //显示在屏幕上方状态栏的图标  

CharSequence tickerText = "Hello";     //显示在屏幕上方状态栏的通知消息  

long when = System.currentTimeMillis(); //发出通知的时间  

Notification notification = new Notification(icon, tickerText, when);  

       3.定义的信息和PendingIntent通知:

PendingIntent封装了一个Intent,当用户点击通知后会跳到对应的Activity。

PendingIntent对象由Android系统负责维护,因此,在应用程序关闭后,该对象仍然不会被释放。 

<3>出现的问题

       Noitficion有些方法已经不被支持,使用Noitficion.builder来创建,api最低要求是16。

<4>代码及解释

      

StatusBarActivity.java:

package com.ui.status;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;

import com.activity.firstActivity;
import com.test.R;

public class StatusBarActivity extends Activity{
	/**   
	 * @ProjectName:  [androidtest] 
	 * @Package:      [com.ui.status.StatusBarActivity.java]  
	 * @ClassName:    [StatusBarActivity]   
	 * @Description:    
	 * @Author:       [gmj]   
	 * @CreateDate:   [2013-9-6 下午10:12:54]   
	 * @Version:      [v1.0] 
	 */
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		/*Notification notification = new Notification.Builder(this)
									.setContentText("my message")
									.setSmallIcon(R.drawable.img1)
									.setContentTitle("new mail")
									.build();		
		*/
		Notification notification = new Notification(R.drawable.img1 , "my message" ,System.currentTimeMillis());
		
		
		notification.flags = Notification.FLAG_AUTO_CANCEL;
		Intent notificationIntent = new Intent(StatusBarActivity.this , firstActivity.class);
		PendingIntent pedingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
		notification.setLatestEventInfo(this , "have a message" , "hhhhhhh" , pedingIntent);
		
		notificationManager.notify(R.drawable.img2 , notification);
	}
}


最后

以上就是高挑芹菜为你收集整理的Android入门笔记之状态栏通知的全部内容,希望文章能够帮你解决Android入门笔记之状态栏通知所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部