Android通知的基本用法及进阶和高级用法

一、基本用法

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最高重要程度 无论处于游戏 电影中都将接收到放大通知。

猜你喜欢

转载自blog.csdn.net/qq_41105058/article/details/80146275