通知
基本用法
NotificationManager对通知进行管理,此对象可以通过context的getSystemServerce(Context.NOTIFICATION_SERVICE)获取,记得强制转换类型为NotificationManager。
使用NotificationCompat的Builder构造器来创建notification对象
例如:
Notification notifiction = new NotificationCompat.Builder(context).build();
这是一个空的通知对象,要往其中添加内容则
Notification notifiction = new NotificationCompat.Builder(context)
.seContentTitle(“this is content title”)
.setXXXX
.build();
使用NotificationManager对象的notify(id,notification)方法来启用通知,这样就会显示出来,但点击该通知没有任何效果,这必须要用到PendingIntent,这个可以理解为延迟执行的intent.
PendingIntent的使用方法如下:
它的作用相当于,启动一个活动。
可以用过静态的getActivity,getService,getBroadcast等方法取得其实例,这些方法接受的参数分别为context、0、intent对象、第四个参数确定pendingintent的行为,如FLAG_ONE_SHOT,不过多解释一般传0,要使用这个即必须要在构造notification时,通过setContentIntent()来设置。
实例:
Intent intent = new Intent(context,activity.class);
PendingIntent pi = PendingIntent.getActivity(context,0,intent,0);
Notification notifiction = new NotificationCompat.Builder(context)
.seContentTitle(“this is content title”)
.setContentIntent(pi)
.setXXXX
.build();
让通知栏点击后消失
构造notification时.etAutoCancel(true)
进阶
主要是一些增加通知附带效果的功能,如通知来时的音频和震动等,一般是通过创建notification的时候的set方法来设置;
高级
增大通知所占面积,附带大图片,长文字,还有在通知栏的显示顺序等等。