原始Notification的使用方法:
1)新建样式表。带一个progressbar
一、获取系统服务,得到Notification的管理器:
mNotifyMrg = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
1)使用通知管理器发送通知:
mNotifyMrg.notify(R.id.button1, notification);
2)由于需要一个Notification对象,需要新建一个该对象:
Notification notification = new Notification(R.drawable.ic_launcher, "新通知", System.currentTimeMillis());
通知栏里的图片, 通知一来到状态栏显示的文字, 通知上显示的时间
3)为通知设定点击事件:
notification.setLatestEventInfo(this, "消息标题", "新内容", contentIntent );
3.5)需要一个ContentIntent对象,新建一个该对象:
PendingIntent contentIntent =PendingIntent.getActivity(this, 0, intent , 0);
新建contentIntentd对象使用静态方法使得点击之后显示一个Activity,当然需要一个intent来启动,PendingIntent可以启动
Service、发送广播。
为PendingIntent.getActivity新建一个Intent对象启动本对象:
Intent intent = new Intent(this, MainActivity.class);
4)使用mNotifyMrg.notify(R.id.button1, mNotification);
二、定制Notification的显示效果。
1)新建样式表。带一个progressbar
2)使用notificaton.contenView 将样式填充至对象中。
mNotification.contentView = new RemoteViews(getPackageName(), R.layout.my_notifiy_layout);
注意需要去掉mNotification.setLatestEventInfo(this, null, null, contentIntent );这个点击事件
三、更新自定义内容Notification里的组件:先更新该组件,再通知notificaion:
i = 1;
mNotification.contentView.
setProgressBar(R.id.progressBar1, 100, 10*i++, false); //此处改变其他组件也是类似,如textView,
mNotification.contentView.
setProgressBar(R.id.progressBar1, 100, 10*i++, false);
mNotification.contentView.setViewVisibility();//设置组件的显示开关
mNotifyMrg.
notify(R.id.button1, mNotification);
四。注意:
不是所有的组件都可以放在Notification的显示内容里,只有类有@RemoteView注解的View才可以。如TextView、ImageView他们都是可以
生成在不是Activity中的组件。
样例代码:
点击打开链接