通知是应用程序通知用户的一种方式,它无须活动,由通知管理器进行统一管理。通知包含一下功能:
1. 创建新的状态栏图标
2. 在扩展的状态栏窗口显示额外的信息(可以发起一个意图)
3. 闪烁/LED
4. 让手机震动
5. 发出声音(铃声,媒体库歌曲)
通知管理器是用来处理通知的系统服务,使用getSystemService方法可以获得对它的引用。通过使用通知管理器,可以触发新的通知,修改现有的通知或者删除那些不再需要的通知。
首先创建一个新的Notification对象并传递给它要在状态栏显示的图标、状态栏的点击文本以及这个通知的时间。
可以设置Notification对象的number属性来显示一个状态栏图标所表示的事件的数量。
可以通过两张方式在扩展的状态窗口配置通知的外观。
1. 使用setLatestEventInfo方法更新标准的扩展的状态通知显示中所显示的详细信息。
2. 使用一个远程视图(Remote View)设置contentView和contentIntent,以便为扩展的状态显示分配一个定制的UI。
最简单的方法是使用setLatestEventInfo方法来填充默认的状态窗口布局。标准的扩展的状态窗口布局会显示构造函数中定义的图标和时间,以及标题和一个详细信息字符串。
通知常用于请求用户的动作或注意,所以可以指定一个PendingIntent,当用户单击通知项的时候触发它,在大多数情况下,该意图应该打开应用程序,并导航到为通知提供了上下文的活动。
NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
int icon = R.drawable.play;
String tickerText = getResources().getString(
R.string.notification);
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText