尽管并非强制要求,但每个通知都应在用户点按时打开相应的应用 Activity。除了这种默认的通知操作之外,还可以添加可在通知中完成与应用相关任务的操作按钮(通常不需要打开 Activity),一个通知最多可以提供三个操作按钮供用户快速相应通知.
参考: 在Android 10 (API级别29)和更高版本中,如果应用不提供自己的通知操作按钮,则系统会自动生成通知操作按钮.
标准模板适用于大多数通知,它允许使用简洁文本、大图标和操作。
图4: 标准通知模板
默认情况下,通知的文字内容会被截断以放在一行。如果需要长一些的通知,可以通过应用该模板启用更大的展开式文本区域。
图5: 大文本模板的通知
大图模板专为包含图片的通知而设计。收起后,通知将显示图片的大图标缩略图。展开后,通知会显示更大的预览。
图6: 大图模板的通知
进度模板专为用户发起的需要时间才能完成的活动而设计。展开后,使用此模板的通知会显示进度条,并且还会包含“取消”操作,以便用户终止此 activity。(不可取消的活动不要求发送通知。)
图7: 进度模板
媒体模板旨在让用户能够控制当前从应用中播放的媒体。
图8: 媒体模板
消息模板专为实时通信而设计。展开后,使用此模板的通知可让用户在通知中回复消息。
图9: 消息模板
通话模板生成大格式通知,其中包含大图片附件并指示来电或去电。
图10: 通话模板
Android 中的抽屉式通知栏通常按时间倒序显示通知,并受到以下条件的影响:
图11: 抽屉式通知栏中的通知
抽屉式通知栏旨在向用户显示与当前时刻相关的信息。如果早前的通知已经过时,即不再相关,可将其关闭,这样用户就看不到该通知。
图12: 刚收到的文本显示在抽屉式通知栏中,并在底部显示优先级较低的通知
从 Android 5.0 开始,通知可以短暂地显示在浮动窗口中,称之为提醒式通知。这种行为通常适用于用户应立即知晓的重要通知,而且仅在设备未锁定时才会显示。
图13: 显示在前台应用前面的提醒式通知
提醒式通知会在应用发出通知后立即出现,稍后便会消失,但仍照常显示在抽屉式通知栏中。使用场景如下:
从 Android 5.0 开始,通知可以显示在锁定屏幕上。
可以采用编程方式设置应用在安全锁定屏幕上所发布通知的详情可见等级,甚至可以设置通知是否显示在锁定屏幕上。
用户可以通过系统设置来选择锁定屏幕通知的详情可见等级,包括选择停用所有锁定屏幕通知。从 Android 8.0 开始,用户可以选择停用或启用各个通知渠道的锁定屏幕通知。
图14: 锁定屏幕上已隐藏敏感内容的通知
当设置 VISIBILITY_PRIVATE时,可以提供通知内容的备用版本,以隐藏特定详细信息。例如,短信应用可能会显示一条通知,提示“您有1条新短信”,但是隐藏了短信内容和发件人。
图15: 不同隐私级别的锁屏通知
从 Android 5.0 开始,通知可以短暂地显示在浮动窗口中,称之为提醒式通知。这种行为通常适用于用户应立即知晓的重要通知,而且仅在设备未锁定时才会显示。
图16: 显示在前台应用前面的提醒式通知
提醒式通知会在应用发出通知后立即出现,稍后便会消失,但仍照常显示在抽屉式通知栏中。
例如,以下情况可能会触发提醒式通知:
显示紧急的时效性消息,例如来电或响铃警报。在这些情况下,可以将全屏 Intent 与通知关联。调用通知时,根据设备的锁定状态,用户会看到以下情况之一:
参考 : 包含全屏Intent的通知有很强的干扰性,因此这类通知只能用于最紧急的时效性通知。
将这些孤立的通知分为一组(可在搭载 Android 7.0 及更高版本的设备上这样做)。借助通知组,可以以一条摘要的形式在抽屉式通知栏中将多个通知收拢成一条通知消息。用户便可以展开通知以查看每个通知的详情。
用户可以逐级展开通知组以及其中的每条通知以查看详情。
图12: 分组通知收起和展开的视图
参考:如果同一个应用发出4条或更多通知且未指定分组,系统会自动将这些通知分为一组。
Android 利用通知的重要程度来决定通知应在多大程度上干扰用户(视觉上和听觉上)。通知的重要程度越高,干扰程度就越高。
在搭载 Android 8.0(API 级别 26)及更高版本的设备上,通知的重要程度由通知发布到的渠道的 importance决定。用户可以在系统设置中更改通知渠道的重要程度。
在搭载 Android 7.1(API 级别 25)及更低版本的设备上,每条通知的重要程度均由通知的 priority 决定。
图12: 渠道重要性级别
Android 使用一些预定义的系统范围类别来确定在用户启用勿扰模式后是否发出指定通知来干扰客户(例如:CATEGORY_ALARM、CATEGORY_REMINDER、CATEGORY_EVENT或CATEGORY_CALL等)。