一、Notification 概述
Notification,俗称通知,是一种具有全局效果的通知,它展示在屏幕的顶端,首先会表现为一个图标的形式,当用户向下滑动的时候,展示出通知具体的内容。系统为开发者提供了不同种类的通知样式模板可以使用,开发者也可以根据自己需要自定义通知样式。
二、通知渠道(NotificationChannel)
通知渠道是 Google 在 Android O 中新增加的功能,新的版本中把振动、音效和灯效等相关效果放在了通知渠道中控制,这样用户就可以有选择的控制应用的某一类通知的通知效果,而不像之前版本中应用所有通知都受控于一种设置。需要注意的是,在 Android O 版本中,发送通知的时候必须要为通知设置通知渠道,否则通知不会被发送。
public void addNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//创建通知渠道
CharSequence name = "渠道名称1";
String description = "渠道描述1";
int importance = NotificationManager.IMPORTANCE_DEFAULT;//重要性级别 这里用默认的
NotificationChannel mChannel = new NotificationChannel(channelId, name, importance);
mChannel.setDescription(description);//渠道描述
mChannel.enableLights(true);//是否显示通知指示灯
mChannel.enableVibration(true);//是否振动
mNotificationManager.createNotificationChannel(mChannel);//创建通知渠道
}
}
三、发送通知
1、简单通知
效果图如下所示:
具体代码如下:
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, channelId)
.setSmallIcon(R.mipmap.ic_launcher)//小图标
.setContentTitle("我是标题")
.setContentText("我是内容内容");
mNotificationManager.notify(id, mBuilder.build());
2、大文本通知
效果图如下所示:
具体代码如下:
NotificationCompat.Builder mBuilder2 = new NotificationCompat.Builder(this, channelId)
.setSmallIcon(R.mipmap.ic_launcher)//小图标
.setStyle(new NotificationCompat.BigTextStyle().bigText("通知渠道是 Google 在 Android O 中新增加的功能," +
"新的版本中把振动、音效和灯效等相关效果放在了通知渠道中控制," +
"这样用户就可以有选择的控制应用的某一类通知的通知效果," +
"而不像之前版本中应用所有通知都受控于一种设置。需要注意的是," +
"在 Android O 版本中,发送通知的时候必须要为通知设置通知渠道,否则通知不会被发送"))
.setContentTitle("我是标题");
mNotificationManager.notify(id, mBuilder2.build());