安开发卓之Notification(一)代码直接能用
来自: http://www.cnblogs.com/sunzan/p/5242799.html
Notification是Android中很理想的一种显示提示信息的方法,它可以将应用程序的信息传递到我们的Android桌面状态栏,采用这种消息传递方式不会影响到用户对手机的正常使用。而且Notification不仅仅可以传递文字信息,还可以传递图片信息,甚至可以将我们的控件追加到上面,只要用户不对其进行清空,那么消息将一直保存在用户桌面的状态栏当中。
Notification通常用来进行对用户的更新提醒等消息的传递。
Notification需要使用到NotificationManager(消息通知管理类)对消息进行管理,其创建需要五个步骤:
(1)通过getSystemService获取Notification对象
(2)创建一个Notification,每一个notification对应一个notification对象。
(3)创建一个PendingIntent对象
(4)使用notification类的setLatestEventInfo方法设置Notification对象的详细信息
(5)使用NotificationManager对象的notify方法显示消息
在第二步时应当注意需要设置显示在屏幕上方状态栏的通知消息、通知消息前方的图像资源ID和放出通知的时间,一般为当前时间
(3)创建PendingIntent对象:
由于notification可以与应用程序脱离,也就是说你的应用程序已经关闭,消息仍然显示在状态栏之中,当应用程序再次启动后,又可以重新控制这些notification,如清除、替换等工作。因此需要PendingIntent对象,该对象由安卓系统维护,因此,应用程序关闭后,消息仍然不会被释放。
(4)在使用notify方法时需要指定Notification对象的唯一ID,这个ID必须相对于一个Notificationmanager对象来说是唯一的,否则就会覆盖相同ID的
Notification
NotificationManager manager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
String notice = "您有短消息了!";
Notification notification = new Notification(R.drawable. ic_launcher, notice,System.currentTimeMillis());
PendingIntent contentIntent = PendingIntent.getActivity
(getApplicationContext(), 0, getIntent(), 0);
notification. setLatestEventInfo
(getApplicationContext(), "小搬运工又变帅了 ", " 华中软件龙头企业 ", contentIntent);
notification.defaults = Notification.DEFAULT_SOUND;
notification.defaults = Notification.DEFAULT_LIGHTS;
notification.defaults = Notification.DEFAULT_VIBRATE;
notification.defaults = Notification.DEFAULT_ALL;
manager.notify(R.drawable.ic_launcher,notification);
1、如果要调取声音,需用使用到:android:name=“android.permission.VIBRATE”权限
NotificationManager.cancel(resId)清除某个数据 NotificationManager.cancelAll()清除某个NotificationManager对象中的所有消息。在清除完消息后,需要做一些善后工作,需要通过notification,deleteIntent来完成,deleteIntent也需要一个pendingIntent类型的变量,用于在清除所用的notification对象时调用。这个动作可以与Activity、Service、Broadcast关联。
如果想永久保存推送的通知,需要增加代码:
•notification.flags = Notification.FLAG_NO_CLEAR;