Notification通知

Notification 的基本操作主要有创建、更新、取消这三种。一个 Notification 的必要属性有三项,如果不设置则在运行时会抛出异常:

1.小图标,通过 setSmallIcon() 方法设置
2.标题,通过 setContentTitle() 方法设置
3.内容,通过 setContentText() 方法设置

1.获取 NotificationManager 实例

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

2.创建NotificationChannel,做相关配置

String channelid = "1";
String channelName = "default";
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
   NotificationChannel channel =
   new NotificationChannel(channelid, channelName,NotificationManager.IMPORTANCE_DEFAULT);
     channel.enableLights(true);//开启指示灯,如果设备有的话。
     channel.setLightColor(Color.RED);//设置指示灯颜色
     channel.setShowBadge(true);//检测是否显示角标
     manager.createNotificationChannel(channel);
                }

3.实例化 NotificationCompat.Builder 并设置相关属性,生成Notification

Intent intent = new Intent(this, MainActivity.class);
PendingIntent activity = PendingIntent.getActivity(this, 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification build = new NotificationCompat.Builder(this, channelId)
     .setSmallIcon(R.mipmap.ic_launcher)//设置小图
     .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.banner))//设置大图
     .setContentText("我是内容")//设置内容
     .setContentTitle("我是标题")//设置标题
     .setContentIntent(activity)//设置延时意图
     .setDefaults(Notification.DEFAULT_ALL)//设置提示效果
     .setBadgeIconType(R.mipmap.ic_launcher)//设置设置角标样式
     .setAutoCancel(true)//设置点击自动消失
     .setNumber(3)//设置角标计数 
     .build();

4.调用NotificationManager 方法notify()发送通知

manager.notify(100, build);

取消 Notification

取消通知有如下 5 种方式:

1.点击通知栏的清除按钮,会清除所有可清除的通知

2.设置了 setAutoCancel() 或 FLAG_AUTO_CANCEL 的通知,点击该通知时会清除它

3.通过 NotificationManager 调用 cancel(int id) 方法清除指定 ID 的通知

4.通过 NotificationManager 调用 cancel(String tag, int id) 方法清除指定 TAG 和 ID 的通知

5.通过 NotificationManager 调用 cancelAll() 方法清除所有该应用之前发送的通知

你可能感兴趣的:(Notification通知)