private void showNotification(Context context, String content) {
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder;
//判断是否是8.0Android.
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel chan1 = new NotificationChannel(“通知渠道的id", "通知渠道的名称", NotificationManager.IMPORTANCE_HIGH);
chan1.setLightColor(Color.GREEN);
mNotificationManager.createNotificationChannel(chan1);
mBuilder = new NotificationCompat.Builder(context, PRIMARY_CHANNEL);
} else {
mBuilder = new NotificationCompat.Builder(context);
}
Intent notificationIntent = new Intent(context, MainActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(context, R.string.app_name, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);
mBuilder.setContentTitle("xxx")//设置通知栏标题
.setContentText(content)//设置通知栏内容
.setContentIntent(intent) //设置通知栏点击意图
.setSmallIcon(R.mipmap.xxx) //设置通知小ICON
.setAutoCancel(true)
.setNumber(2) //设置通知集合的数量
.setTicker("xxx") //通知首次出现在通知栏,带上升动画效果的
.setWhen(System.currentTimeMillis())//通知产生的时间,会在通知信息里显示,一般是系统获取到的时间
.setDefaults(Notification.DEFAULT_ALL);//向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合
Notification notify = mBuilder.build();
mNotificationManager.notify(pushId, notify);
}
Android 8.0系统的通知栏适配
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 摘自郭神的文章: 从Android 8.0系统开始,Google引入了通知渠道这个概念。 什么是通知渠道呢?顾名思...
- 由于历史原因,Android在发布之初对通知栏Notification的设计相当简单,而如今面对各式各样的通知栏玩...