Android O 新特性 — Notification
新特性
在 Android 8.0 中,我们已重新设计通知,以便为管理通知行为和设置提供更轻松和更统一的方式。这些变更包括:
- 通知渠道:Android 8.0 引入了通知渠道,其允许您为要显示的每种通知类型创建用户可自定义的渠道。用户界面将通知渠道称之为通知类别。要了解如何实现通知渠道的信息,请参阅通知渠道指南。
- 通知标志:Android 8.0 引入了对在应用启动器图标上显示通知标志的支持。通知标志可反映某个应用是否存在与其关联、并且用户尚未予以清除也未对其采取行动的通知。通知标志也称为通知点。要了解如何调整通知标志,请参阅通知标志指南。
- 休眠:用户可以将通知置于休眠状态,以便稍后重新显示它。重新显示时通知的重要程度与首次显示时相同。应用可以移除或更新已休眠的通知,但更新休眠的通知并不会使其重新显示。
- 通知超时:现在,使用
setTimeoutAfter()
创建通知时您可以设置超时。您可以使用此函数指定一个持续时间,超过该持续时间后,通知应取消。如果需要,您可以在指定的超时持续时间之前取消通知。 - 通知设置:当您使用
Notification.INTENT_CATEGORY_NOTIFICATION_PREFERENCES
Intent 从通知创建指向应用通知设置的链接时,您可以调用setSettingsText()
来设置要显示的文本。此系统可以提供以下 Extra 数据和 Intent,用于过滤应用必须向用户显示的设置:EXTRA_CHANNEL_ID
、NOTIFICATION_TAG
和NOTIFICATION_ID
。 - 通知清除:系统现在可区分通知是由用户清除,还是由应用移除。要查看清除通知的方式,您应实现
NotificationListenerService
类的新onNotificationRemoved()
函数。 - 背景颜色:您现在可以设置和启用通知的背景颜色。只能在用户必须一眼就能看到的持续任务的通知中使用此功能。例如,您可以为与驾车路线或正在进行的通话有关的通知设置背景颜色。您还可以使用
Notification.Builder.setColor()
设置所需的背景颜色。这样做将允许您使用Notification.Builder.setColorized()
启用通知的背景颜色设置。 - 消息样式:现在,使用
MessagingStyle
类的通知可在其折叠形式中显示更多内容。对于与消息有关的通知,您应使用MessagingStyle
类。您还可以使用新的addHistoricMessage()
函数,通过向与消息相关的通知添加历史消息为会话提供上下文。
创建通知
您可以在 NotificationCompat.Builder
对象中为通知指定 UI 信息和操作。要创建通知,请调用 NotificationCompat.Builder.build()
,它将返回包含您的具体规范的 Notification
对象。要发出通知,请通过调用 NotificationManager.notify()
将 Notification
对象传递给系统。
必需的通知内容
Notification
对象必须包含以下内容:
- 小图标,由
setSmallIcon()
设置 - 标题,由
setContentTitle()
设置 - 详细文本,由
setContentText()
设置
创建通知/自定义通知渠道
(1)NotificationManager获取
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);复制代码
(2)通知渠道的创建
// Creates an explicit intent for an Activity in your app
Intent intent = new Intent(MainActivity.this, Main2Activity.class);TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(MainActivity.this);
taskStackBuilder.addParentStack(Main2Activity.class);
taskStackBuilder.addNextIntent(intent);// 通过taskStackBuilder对象获取PendingIntent
PendingIntent pi = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);String custom_id = "marco_notification"; // 自定义通知渠道
idCharSequence name = getString(R.string.channel_name); // 自定义通知渠道
nameString description = getString(R.string.channel_description); // 自定义通知渠道描述
int importance = NotificationManager.IMPORTANCE_HIGH; // 自定义通知渠道级别//创建自定义渠道
NotificationChannel marco_channel = new NotificationChannel(custom_id, name, importance);// 添加一系列特性
marco_channel.setDescription(description);
marco_channel.enableLights(true);
marco_channel.setLightColor(Color.RED);notificationManager.createNotificationChannel(marco_channel);复制代码
(3)通知的创建、显示
NotificationCompat.Builder notification = new NotificationCompat.Builder(MainActivity.this, custom_id) .setContentTitle("This is a Notification") .setContentText("Notification contentText") .setSmallIcon(R.drawable.ic_launcher_background) .setContentIntent(pi);
notificationManager.notify(1,notification.build());复制代码
以下为代码截图和通知显示效果:
图1. 创建自定义渠道的Notification代码逻辑
图2. Notification显示截图
通知超时
NotificationCompat.Builder notification = new NotificationCompat.Builder(MainActivity.this, custom_id).setContentTitle("This is a Notification").setContentText("Notification contentText").setSmallIcon(R.drawable.ic_launcher_background).setContentIntent(pi)// 设置超时时间,5000 = 5秒,Notification将会消失 .setTimeoutAfter(5000);复制代码
Android O 新特性 — Notification相关推荐
- Android O 新特性和行为变更总结
Android O新特性和行为变更总结 原文地址:https://mp.weixin.qq.com/s?__biz=MzI1NjEwMTM4OA==&mid=2651232573&id ...
- Android O新特性和行为变更总结zz
https://mp.weixin.qq.com/s/Ezfm-Xaz3fzsaSm0TU5LMw Android O 行为变更 https://developer.android.google.cn ...
- Android O新特性和行为变更总结
原文地址(QQ音乐微信公众号首发): https://mp.weixin.qq.com/s?__biz=MzI1NjEwMTM4OA==&mid=2651232573&idx=1&am ...
- Android N 新特性
2016年5月19日,谷歌在美国加州的山景城举办了 Google I/O 开发者大会中发布.2016年6月,Android N正式命名为"牛轧糖" 本届I/O开发者大会上,Goog ...
- Android M新特性Doze and App Standby模式详解
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52312122 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
- 魅族android p,2.Android P新特性实践-Slices
Android P新特性实践-Slices 概述 在2018年谷歌I/O开发者大会上,谷歌发布了万众期待的Android最新版本-Android P.Slice作为Android P版本更新的一大功能 ...
- Android N新特性
Android N新特性 Jit编译器,安装更快,apk占用空间更小 Vulkan渲染引擎(用于游戏开发) Doze模式更加智能 通知栏(同类通知合并.快捷回复) 分屏模式及快捷切换 无缝更新
- android 通知历史,Android P新特性:追踪应用通知历史
原标题:Android P新特性:追踪应用通知历史 IT之家3月9日消息 不久前,谷歌已经正式推出了首个Android P开发者预览版,包含了许多新特性.对此,IT之家也进行了一系列报道.该系统的新特 ...
- 社区说|Android 13 新特性 EROFS-只读文件系统解析
活动时间 7 月 28 日(本周四) 20:00 - 21:00 活动日程 20:00 - 20:45 主题分享 Android 13新特性 EROFS-只读文件系统解析 介绍 Android 13的 ...
最新文章
- MySQL 慢查询日志分析及可视化结果
- 【Vegas2007】11月23日-螃蟹的做法(蒸煮两法)
- 类风湿性关节炎患者腕关节的多普勒超声积分与OMERACT RAMRIS骨髓水肿和滑膜相关...
- 图解WebGLThree.js工作原理【转】
- python+selenium十:selenium的二次封装
- Sightseeing Cows(POJ-3621)
- CombineFileInputFormat 文件分片总结
- 剑指offer面试题[42]-反转单词顺序VS左旋转字符串
- 更换光猫的原理与方法
- Epub电子书格式(四)
- ZZULIOJ:1035: 分段函数求值
- Java爬去教务系统后怎么发布_GitHub - canliture/CrawlerCourseTable: 课程表的java爬虫实现--基于“强智教务系统”...
- 谷粒商城二十订单服务
- 微软这个系统,90% 的人都没用过!
- GPUImage实现人脸实时识别
- 欧标IEC62056 兰吉尔关口电表无线抄表数据采集方案
- 编写shell脚本判断当前主机的CPU生产商
- 如何在微信小程序中使用php和mysql_微信小程序php后台实现
- MCAFee(麦咖啡)进程解释
- unity3D 脚本概览
热门文章
- SSM-Spring+SpringMVC+MyBatis整合案例从0到1
- Shell 输入/输出重定向
- java WebMvcConfig 全局设置时间服务器时区
- 水鱼 学习回顾 <1>
- html在线压缩tar.gz源码,c50_melp.tar.gz美国2400语音压缩编码算法,文件…
- C#教程5:操作算子(1)
- 人工智能:自由能理论,AI未来的数学模型
- 如何在Ubuntu18.04安装Tesla T4板的驱动程序
- 反积分饱和 程序_非常通俗易懂的PID控制(2)--积分饱和
- suse系统_你知道吗,Artifactory还可以管理SUSELinux系统的依赖