Android用户界面之notifaction(状态栏通知)
对于通知,应先明白:通知概要 通知标题 通知内容 通知图标 通知时间
首先,看界面。状态栏上的是:图标和概要。
将状态栏往下拉,会出来标题、内容和时间。
通知除了状态栏的图标外,还可以 开打设备上的LED灯,发送声音、震动来提醒用户
通知可以告诉用户在后台发生了某事,所以经常在广播接受者和服务中使用;
例子开始的界面如下:点击发送后,会发送通知。
主要用到的方法有:
1、得到通知管理者:通过getSystemService(String)
.来得到NotificationManager,在该类中调用cancel(int)来清除通知。
2、指定通知的最新信息:notification.setLatestEventInfo(this, title, content, pendingIntent);
3、 PendingIntent类解析:
带有特定标记(flag)的的intent,由静态方法getActivity(Context, int, Intent, int flag)
,getBroadcast(Context, int, Intent, int flag)
,getService(Context, int, Intent, int flag)
来创建。
主要标记有:
FLAG_UPDATE_CURRENT :如果已经存在PendingIntent,还产生该PendingIntent,还带有新的extra
FLAG_ONE_SHOT :这个PendingIntent只能被用一次。
FLAG_CANCEL_CURRENT:如果存在的PendingIntent还未消失,还取消将将要产生的该PendingIntent
主要代码:
- StringtickerText=shortText.getText().toString();
- Stringtitle=titleText.getText().toString();
- Stringcontent=contentText.getText().toString();
- //1、得到NotificationManager
- NotificationManagermanager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
- //2、实例化一个通知,指定了图标、概要、时间
- Notificationnotification=newNotification(android.R.drawable.stat_notify_chat,tickerText,System.currentTimeMillis());
- //3、指定通知的标题、内容和intent
- Intentintent=newIntent(Intent.ACTION_CALL,Uri.parse("tel:104040444"));
- PendingIntentpendingIntent=PendingIntent.getActivity(this,0,intent,0);
- notification.setLatestEventInfo(this,title,content,pendingIntent);
- //指定标志和声音
- notification.flags=Notification.FLAG_AUTO_CANCEL;
- notification.defaults=Notification.DEFAULT_SOUND;
- //可以指定为震动,也可以用.sound来自己指定声音 (sound是一个Uri对象.如何指定Raw文件可以见博文:http://blog.youkuaiyun.com/java2009cgh/article/details/7549679)
- //notification.defaults=Notification.DEFAULT_VIBRATE;
- //可以指定为闪光灯
- //notification.defaults=Notification.DEFAULT_LIGHTS;
- //4、发送通知给通知管理者
- manager.notify(1,notification);
转:http://blog.youkuaiyun.com/kuangc2008/article/details/6359110