Android 通知简介
Android 通知简介
1. 基本通知
图1: 基本通知详情
- 小图标 : 必须提供,通过 setSmallIcon( ) 进行设置.
- 应用名称 : 由系统提供.
- 时间戳 : 由系统提供,也可隐藏时间.
- 大图标(可选) : 可选内容(通常仅用于联系人照片,请勿将其用于应用图标),通过setLargeIcon( ) 进行设置.
- 标题 : 可选内容,通过 setContentTitle( ) 进行设置.
- 正文文本 : 可选内容,通过 setContentText( ) 进行设置.
2. 通知操作
尽管并非强制要求,但每个通知都应在用户点按时打开相应的应用 Activity。除了这种默认的通知操作之外,还可以添加可在通知中完成与应用相关任务的操作按钮(通常不需要打开 Activity),一个通知最多可以提供三个操作按钮供用户快速相应通知.
图2: 带有一个个操作按钮的通知
图3: 点击 “ REPLY ” 按钮会打开文本输入框
参考: 在Android 10 (API级别29)和更高版本中,如果应用不提供自己的通知操作按钮,则系统会自动生成通知操作按钮.
3. 通知模板
(1) 标准模板
标准模板适用于大多数通知,它允许使用简洁文本、大图标和操作。

图4: 标准通知模板
(2) 大文本模板 (BigTextStyle)
默认情况下,通知的文字内容会被截断以放在一行。如果需要长一些的通知,可以通过应用该模板启用更大的展开式文本区域。

图5: 大文本模板的通知
(3) 大图模板 (BigPictureStyle)
大图模板专为包含图片的通知而设计。收起后,通知将显示图片的大图标缩略图。展开后,通知会显示更大的预览。

图6: 大图模板的通知
(4) 进度模板
进度模板专为用户发起的需要时间才能完成的活动而设计。展开后,使用此模板的通知会显示进度条,并且还会包含“取消”操作,以便用户终止此 activity。(不可取消的活动不要求发送通知。)

图7: 进度模板
(5) 媒体模板 (MediaStyle)
媒体模板旨在让用户能够控制当前从应用中播放的媒体。
- 收起时,通知最多可以显示三项操作。大图标可以显示相关图片,例如专辑封面。
- 展开时,通知会显示最多 5 个操作(使用较大的图片)或 6 个操作(不带图片)。通知的背景和其他元素会自动继承图片的颜色。

图8: 媒体模板
(6) 消息模板 (MessagingStyle)
消息模板专为实时通信而设计。展开后,使用此模板的通知可让用户在通知中回复消息。

图9: 消息模板
(7) 通话模板 (CallStyle)
通话模板生成大格式通知,其中包含大图片附件并指示来电或去电。

图10: 通话模板
4. 抽屉式通知栏
Android 中的抽屉式通知栏通常按时间倒序显示通知,并受到以下条件的影响:
- 应用声明的通知优先级或重要性
- 通知最近是否通过提示音或振动提醒用户
- 通知是否与任何人相关,这些人是不是已加星标的联系人
- 通知是否表示重要的持续性活动(例如正在进行的通话或正在播放音乐)
- Android 操作系统通过在列表顶部和底部添加强调效果来改变某些通知的外观,帮助用户扫描内容

图11: 抽屉式通知栏中的通知
5. 处理过时通知
抽屉式通知栏旨在向用户显示与当前时刻相关的信息。如果早前的通知已经过时,即不再相关,可将其关闭,这样用户就看不到该通知。

图12: 刚收到的文本显示在抽屉式通知栏中,并在底部显示优先级较低的通知
6. 提醒式屏幕
从 Android 5.0 开始,通知可以短暂地显示在浮动窗口中,称之为提醒式通知。这种行为通常适用于用户应立即知晓的重要通知,而且仅在设备未锁定时才会显示。

图13: 显示在前台应用前面的提醒式通知
提醒式通知会在应用发出通知后立即出现,稍后便会消失,但仍照常显示在抽屉式通知栏中。使用场景如下:
- 用户的 Activity 处于全屏模式(应用使用 fullScreenIntent)。
- 通知的优先级很高,且在搭载 Android 7.1(API 级别 25)及更低版本的设备上使用铃声或振动。
- 在搭载 Android 8.0(API 级别 26)及更高版本的设备上,通知渠道的重要程度比较高。
7. 锁定屏幕
从 Android 5.0 开始,通知可以显示在锁定屏幕上。
可以采用编程方式设置应用在安全锁定屏幕上所发布通知的详情可见等级,甚至可以设置通知是否显示在锁定屏幕上。
用户可以通过系统设置来选择锁定屏幕通知的详情可见等级,包括选择停用所有锁定屏幕通知。从 Android 8.0 开始,用户可以选择停用或启用各个通知渠道的锁定屏幕通知。

图14: 锁定屏幕上已隐藏敏感内容的通知
(1) 设置锁定屏幕公开范围 : setVisibility( )
- VISIBILITY_PUBLIC : 显示通知的完整内容。
- VISIBILITY_SECRET : 不在锁定屏幕上显示该通知的任何部分。
- VISIBILITY_PRIVATE : 显示基本信息,例如通知图标和内容标题,但隐藏通知的完成内容。
当设置 VISIBILITY_PRIVATE时,可以提供通知内容的备用版本,以隐藏特定详细信息。例如,短信应用可能会显示一条通知,提示“您有1条新短信”,但是隐藏了短信内容和发件人。

图15: 不同隐私级别的锁屏通知
8. 提醒式通知
从 Android 5.0 开始,通知可以短暂地显示在浮动窗口中,称之为提醒式通知。这种行为通常适用于用户应立即知晓的重要通知,而且仅在设备未锁定时才会显示。

图16: 显示在前台应用前面的提醒式通知
提醒式通知会在应用发出通知后立即出现,稍后便会消失,但仍照常显示在抽屉式通知栏中。
例如,以下情况可能会触发提醒式通知:
- 用户的 Activity 处于全屏模式(应用使用fullScreenIntent)。
- 通知的优先级很高,且在搭载 Android 7.1(API 级别 25)及更低版本的设备上使用铃声或振动。
- 在搭载 Android 8.0(API 级别 26)及更高版本的设备上,通知渠道的重要程度比较高。
9. 显示紧急消息
显示紧急的时效性消息,例如来电或响铃警报。在这些情况下,可以将全屏 Intent 与通知关联。调用通知时,根据设备的锁定状态,用户会看到以下情况之一:
- 如果用户设备被锁定,会显示全屏 Activity,覆盖锁屏。
- 如果用户设备处于解锁状态,通知以展开形式显示,其中包含用于处理或关闭通知的选项。
参考 : 包含全屏Intent的通知有很强的干扰性,因此这类通知只能用于最紧急的时效性通知。
10. 通知更新和分组
将这些孤立的通知分为一组(可在搭载 Android 7.0 及更高版本的设备上这样做)。借助通知组,可以以一条摘要的形式在抽屉式通知栏中将多个通知收拢成一条通知消息。用户便可以展开通知以查看每个通知的详情。
用户可以逐级展开通知组以及其中的每条通知以查看详情。

图12: 分组通知收起和展开的视图
参考:如果同一个应用发出4条或更多通知且未指定分组,系统会自动将这些通知分为一组。
11. 通知的重要程度
Android 利用通知的重要程度来决定通知应在多大程度上干扰用户(视觉上和听觉上)。通知的重要程度越高,干扰程度就越高。
在搭载 Android 8.0(API 级别 26)及更高版本的设备上,通知的重要程度由通知发布到的渠道的 importance决定。用户可以在系统设置中更改通知渠道的重要程度。
在搭载 Android 7.1(API 级别 25)及更低版本的设备上,每条通知的重要程度均由通知的 priority 决定。

图12: 渠道重要性级别
12. 设置系统范围的类别
Android 使用一些预定义的系统范围类别来确定在用户启用勿扰模式后是否发出指定通知来干扰客户(例如:CATEGORY_ALARM、CATEGORY_REMINDER、CATEGORY_EVENT或CATEGORY_CALL等)。
相关文章:
Android 通知简介
Android 通知简介 1. 基本通知 图1: 基本通知详情 小图标 : 必须提供,通过 setSmallIcon( ) 进行设置.应用名称 : 由系统提供.时间戳 : 由系统提供,也可隐藏时间.大图标(可选) : 可选内容(通常仅用于联系人照片,请勿将其用于应用图标),通过setLargeIcon( ) 进行设置.标题 : 可选…...
QT开发 2024最新版本优雅的使用vscode开发QT
▬▬▬▬▬▶VS开发QT◀▬▬▬▬▬ 🎄先看效果 🎄编辑环境变量 如图添加环境变量!!! 东西全在QT的安装目录!!! 找到的按照我的教程再装一次!!! 点…...
Redis性能大挑战:深入剖析缓存抖动现象及有效应对的战术指南
在实际应用中,你是否遇到过这样的情况,本来Redis运行的好好的,响应也挺正常,但突然就变慢了,响应时间增加了,这不仅会影响用户体验,还会牵连其他系统。 那如何排查Redis变慢的情况呢?…...
基于SpringBoot的教学管理系统
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…...
机器学习之独热编码(One-Hot)
一、背景 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等。这些特征值并不是连续的,而是离散的,无序的。通常我们需要对其进行特征数字化。…...
IIS+SDK+VS2010+SP1+SQL server2012全套工具包及安装教程
前言 今天花了两个半小时安装这一整套配置,这个文章的目标是将安装时间缩短到1个小时 正文 安装步骤如下: VS2010 —> service pack 1 —>SQL server2012 —> IIS —> SDK 工具包链接如下: https://pan.baidu.com/s/1WQD-KfiUW…...
【昕宝爸爸小模块】HashMap用在并发场景存在的问题
HashMap用在并发场景存在的问题 一、✅典型解析1.1 ✅JDK 1.8中1.2 ✅JDK 1.7中1.3 ✅如何避免这些问题 二、 ✅HashMap并发场景详解2.1 ✅扩容过程2.2 ✅ 并发现象 三、✅拓展知识仓3.1 ✅1.7为什么要将rehash的节点作为新链表的根节点3.2 ✅1.8是如何解决这个问题的3.3 ✅除了…...
数据库索引
1、什么是索引?为什么要用索引? 1.1、索引的含义 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库中表的数据。索引的实现通常使用B树和变种的B树(MySQL常用的索引就是B树&…...
开源知识库工具推荐:低成本搭建知识库
在信息爆炸的时代,企业和个体对知识的存储和管理需求日益增强。开源知识库工具因其开源、免费、高效的特性,成为了众多组织和个人的首选。如果你正在寻找一款优秀的开源知识库工具,本文将为你推荐三款性能优异的产品,感兴趣就往下…...
C# Chart控件
// 定义图表区域 this.chart1.ChartAreas.Clear(); ChartArea chartArea1 new ChartArea("C1"); this.chart1.ChartAreas.Add(chartArea1); //定义存储和显示点的容器 this.chart1.Series.Clear(); Series series1 new Series("OK"); //series1.ChartAre…...
OpenCV C++ 图像处理实战 ——《多尺度自适应Gamma矫正的低照图像增强》
OpenCV C++ 图像处理实战 ——《多尺度自适应Gamma矫正的低照图像增强》 一、结果演示二、多尺度自适应Gamma矫正的低照度图像增强2.1HSI颜色空间2.1.1 功能源码2.2 自适应于直方图分布的 Gamma 矫正2.2.1 功能源码2.3 多尺度 Retinex 分解与明度增强2.3.1 功能源码三、源码测试…...
原型模式
为什么要使用原型模式 不用重新初始化对象,而是动态地获得对象运行时的状态。适用于当创建对象的成本较高时,如需进行复杂的数据库操作或复杂计算才能获得初始数据。 优点是可以隐藏对象创建的细节,减少重复的初始化代码;可以在…...
linux centos 账户管理命令
在CentOS或其他基于Linux的系统上,账户管理涉及到用户的创建、修改、删除以及密码的管理等任务。 linux Centos账户管理命令 1 创建用户: useradd username 这将创建一个新用户,但默认不会创建家目录。如果想要创建家目录,可以…...
【JavaWeb学习笔记】19 - 网购家居项目开发(上)
一、项目开发流程 程序框架图 项目具体分层方案 MVC 1、说明是MVC MVC全称: Mode模型、View视图、Controller控制器。 MVC最早出现在JavaEE三层中的Web层,它可以有效的指导WEB层的代码如何有效分离,单独工作。 View视图:只负责数据和界面的显示&…...
强化学习的数学原理学习笔记 - RL基础知识
文章目录 Roadmap🟡基础概念贝尔曼方程(Bellman Equation)基本形式矩阵-向量形式迭代求解状态值 vs. 动作值 🟡贝尔曼最优方程(Bellman Optimality Equation,BOE)基本形式迭代求解 本系列文章介…...
winSCP是什么?它有什么功能和特性?它值不值得我们去学习?我们该如何去学习呢?
WinSCP是一款免费的开源SFTP、SCP、FTP和WebDAV客户端,用于Windows操作系统。它提供了一个图形化界面,使用户可以方便地在本地计算机和远程计算机之间传输文件。 WinSCP支持SSH加密通信和多种认证方法,包括密码、公钥和键盘交互。它还支持自…...
SpringBoot的数据层解决方案
🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…...
极客时间-《如何成为学习高手》文章笔记 + 个人思考
极客时间-《如何成为学习高手》文章笔记 个人思考 底层思维高效学习05|教你全面提升专注力,学习时不再走神06|教你高效复习:巧用学习神器取得好成绩07|我考北大中文系时,15 天背下 10 门专业课的连点成线法…...
【前端】下载文件方法
1.window.open 我最初使用的方法就是这个,只要提供了文件的服务器地址,使用window.open也就是在新窗口打开,这时浏览器会自动执行下载。 2.a标签 其实window.open和a标签是一样的,只是a标签是要用户点击触发,而wind…...
虚幻UE 材质-纹理 1
本篇笔记主要讲两个纹理内的内容:渲染目标和媒体纹理 媒体纹理可以参考之前的笔记:虚幻UE 媒体播放器-视频转成材质-播放视频 所以本篇主要讲两个组件:场景捕获2D、场景捕获立方体 两个纹理:渲染目标、立方体渲染目标 三个功能&am…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
