一、基本用法
1、需要一个NotificationManager来对通知进行管理。
可以通过调用Context的getSystemService()方法获取到。
Notification managet=(NotificationManager) getSystemService(Context.NOTIFION_SERVICE):
2、接下来需要使用一个Builder构造器来创建Notification对象
Notification notification=new NotificationCompat.Builder(context) .setContentTitle("This is content title")//用于指定标题内容 .setContentText("This is content text")//用于指定正文内容 .setWhen(System.currentTimeMillis())//用于指定通知被创建的时间,以毫秒为单位。 .setSmallIcon(R.drawble.small_icon)//用于设置小图标,小图标会显示再系统状态栏上。 .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawble.large_icon))//用于设置通知的大图标。当下拉系统状态栏就可以看到大图标。 .build();//此方法前可以连缀多组设置方法来创建一个丰富的Notification
3、以上工作完成后。只需要调用NotificationManager的notify()方法就可以让通知显示出来了。
manager.notify(1,notification);//第一个参数是id,要保证每个通知所指定的id都是不同的。第二个参数则是Notification对象
4、通知点击事件
·PendingIntent:可以理解为延时执行的Intent。
·获取PendingIntent的方法:getActivity(),getService(),getBroadcast().
这些方法所接收的参数是相同的,第一个Context,第二个通常传入0,第三个Intent对象。第四个一般传入0.
构建所需要的Intent将其传入获取PendingIntent的方法中,然后在构建Notification对象的语句中连缀setContentIntent(intent)
Intent intent=new Intent(this,Notification.class); PendingIntent pi =PendingIntent.getActivity(this,0,intent,0);
5、取消通知的方法。
1)在构造Notification对象的方法里连缀.setAutoCancel(true);
2)活动的活动onCreate()里添加
NoticationManager manager=(Notification)getSystemService(NOTIFICATION_SERVICE); manager.cancel(1);//这里传入要取消的通知的id
二、活动的进阶用法
.setSound(Uri.fromFile(new File("/System/media/audio/ringtones/Luna.ogg)))//设置铃声 .setVibrate(new long[] {0,1000,1000,1000})//设置震动 第一个元素:静止时长(ms) 第二个:振动时长(ms)然后又是静止以此类推。 .setLights(Color.GREEN,1000,1000)//第一个颜色 第二个亮起时长 第三个暗下去的时长。 .setDefaults(NotificationCompat.DEFAULT_ALL)//如果不想进行如此复杂的操作。可以设置成默认效果。会根据手机的环境决定播放什么。
三、活动的高阶功能
富文本内容可以显示长段文本;
setStyle(new NotificationCompat.BigTextStyle().bigText("Learn how to build..............................8***********************..")) //还可以显示大图片哦 setStyle(new NotificaitonCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.big_image)))
设置通知的重要程度。
setPriority()
参数以及其对应属性:
PRIORITY_MIN最低的重要程度。
PRIORITY_LOW较低的重要程度。
PRIORITY_DEFAULT和不设置的效果一样
PRIORITY_HIGH表示较高的重要程度,处于较前位置,系统会将此类通知放大。
PRIORITY_MAX最高重要程度 无论处于游戏 电影中都将接收到放大通知。