类 a) NotificationManager i. 获取方法: (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE) b) Notification i. 获取方法:new NotificationCompat.Builder(Context).build();得到
使用 a) 常规使用 i. 建立NotificationManager和Notification类 ii. notification.setXX添加功能 iii. manager.notify(id,notification)来使用通知 b) 基本功能 i. .setContentTitle:标题 ii. .setContentText:内容 iii. .setSmallIcon:小图标 iv. .setLargeIcon(getResource,R.XX.XX):大图标 v. .setWhen:发出通知的时间,单位为毫秒 c) 点击事件 i. 新建Intent,加入属性 ii. 实例化PendingIntent类
可用该类的静态方法getActivity/getBroadcast/getService来得到实例
参数 a) Context b) 通常为0 c) Intent对象 d) 确定PendingIntent行为,通常传入0 iii. .setContentIntent(PendingIntent实例) d) 取消 i. .setAutoCancel() ii. 点击活动中manage.cancel(id) e) 高级功能 i. .setSound(Uri.FromFile()):声音 ii. .setVibrate(long[]) iii. .setLights(Color.XX,亮起时间,熄灭时间) iv. .setDefault(NotificationCompat.DEFAULT_ALL) v. .setStyle(new NotificationCompat.XXXStyle):图片要转为BitMap对象(BitMapFactory.decodeResource) vi. .setPrority()
PRIORITY_MIN:下拉状态栏才显示
PRIORITY_LOW:缩小,靠后
PRIORITY_DEFAULT:默认
PRIORITY_HIGH:放大,靠前
PRIORITY_MAX:立即看到
API26以上(安卓O以上)
新加类:NotificationChannel a) 作用:用于管理一组通知 b) 实例化 i. new NotificationChannel(id,name,importance) ii. importance用Notification的IMPORTANCE_XX常量 iii. 代替了.setPriority(被废弃) c) 功能 i. setLight,setLightColor,setVibration,setVibrationPattern等系统调用功能 d) 需NotificationManager调用createNotificationChannel
其他变化 a) Notification实例化的时候需要加一个参数:channel_id b) Notification大量方法被废弃 以下是测试代码,若需兼容api26以下版本需使用 if (Build.VERSION.SDK_INT >= 26)进行兼容