开发者文档
Notifying the User
通知系统使用户得知应用中重要的事情,例如有新信息到来或者日历事件提醒。将通知作为一个新的通道,提醒用户重要的事情或者记录下用户没有注意到的事情。
Jelly Bean 的新变化
在 Jelly Bean 中,通知系统做了一次被引入 Android 以来最重大的结构性和功能性升级。
通知可以包含操作,使用户可以在通知抽屉中直接作出回应。
通知在大小和布局方面更加灵活,可以展开以显示更多信息。
新的优先级标志让通知可以按照重要程度排序,而不仅仅只是按照时间顺序。
解刨一个通知的细节
基本布局
所有通知的布局在基础上都包含:
发送通知的应用图标或者发送人的头像
通知标题和消息
时间戳
当主图标显示发送人头像时,在副图标位置显示应用图标
信息的基本布局在 Jelly Bean 中没有变化,所以之前的应用在 Jelly Bean 中看起来仍然是一样的。
通知的基本布局
扩展布局
在 Jelly Bean 中你可以为通知提供更多事件的细节。你可以通过扩展布局显示消息的前几行或者图片的预览。这样用户可以看多更多的内容 - 有时甚至可以看到整个消息。用户可以通过 pinch-zoom 或者双手指滑动来打开扩展布局。Android 为单条消息提供了两种扩展布局 (文字和图像) 供你开发应用时使用。
操作
从 Jelly Bean 开始,Android 支持在通知底部显示附加操作。通过这些操作,用户可以对通知直接执行常见的任务,而不用打开应用。这样可以加快操作,配合上滑出消失操作,使用户的通知抽屉体验更加顺滑。
仔细考虑需要放置在通知中的操作数量。放置越多的操作,认知越复杂。请选择真正重要和有意义的一两个操作。
可以放入通知中的操作有以下特点:
对于该通知重要、常用和典型的操作
时间紧迫的
不会与相邻的操作重复的
不要放置:
模糊的
和点击通知得到的效果一样的操作,例如阅读或者打开
日历提醒,带有两个操作按钮
你可以最多指定三个操作,它们都包含有操作图标和文字。将这些操作加入基本布局就得到了一个可扩展布局的通知,不需要其他调整。因为可扩展布局中的操作可能会被隐藏,所以请在应用中也提供相同功能的操作。
设计指导
个性化
如果通知的内容来自于另一个用户 (比如一条消息),放个头像在通知上。
记住把应用作为次要图标放在通知内,让用户知道是哪个应用发出的通知。
去正确的地方
用户触摸通知后,打开你的应用并且将用户带到可以直接操作该通知内容的界面上。大多数情况下,应当是一个详细信息视图 (例如一条消息),不过也有可能是多条内容的列表 (处理 合并的通知 时)。如果进入的不是应用的顶级屏幕,那么在后退历史中增加导航路径,使用户可以通过“返回”键回到应用的顶级屏幕。更多信息,请参考 导航 一节的 系统到应用的导航。
正确设置通知的优先级
从 Jelly Bean 开始,Android 为通知增加了优先级标志。这样你可以使重要的通知相对于其他通知,总是显示在第一个。请通过以下的表格仔细选择通知的优先级:
优先级用户
MAX
重要而紧急的通知,通知用户这个事件是时间上紧迫的或者需要立即处理的。
HIGH
高优先级用于重要的通信内容,例如短消息或者聊天,这些都是对用户来说比较有兴趣的。
DEFAULT
默认优先级用于没有特殊优先级分类的通知。
LOW
低优先级可以通知用户但又不是很紧急的事件。
MIN
用于后台消息 (例如天气或者位置信息)。最低优先级通知将只在状态栏显示图标,只有用户下拉通知抽屉才能看到内容。
合并通知
如果已经有正在等待处理的相同类型通知了,那么你的应用不应当再创建一条新的通知,而是将多条通知合并。
合并的通知提供了总体的信息描述,并且告知用户有多少条通知正在等待处理。
不要这么做:
应当这么做:
你可以使用扩展布局为合并的通知提供更多信息。这样用户可以知道被合并的消息细节,并选择在应用中阅读通知内容。
保证通知是可选的
用户应当可以控制通知。你的应用应当提供选项让用户可以关掉通知或者选择通知的方式,包括是否震动之类的。
使用独特的图标
用户应当可以迅速的了解是哪个应用的通知正等待处理。
应当这么做
观察已有的通知图标,为你的应用选择一个比较独特的。
应当这么做
在通知中使用合适小图标样式,并且在通知操作中选择合适的 Holo Dark 操作图标。
应当这么做
使你的图标保持简洁,不要使用难以分辨的细节。
不要这么做
使用彩色突出你的应用。
正确的闪烁通知指示灯
许多 Android 都有个小灯,称之为通知指示灯,可以在屏幕关闭时告诉用户有通知在等待操作。有 MAX、HIGH 和 DEFAULT 优先级的通知会闪烁指示灯,低优先级的 (LOW 和 MIN) 通知不应该闪烁指示灯。
用户对通知的控制应该包括指示灯。通知指示灯应当显示的是白色。应用的通知不应该显示其他颜色,除非使用户指定的。
构建用户真正关心的通知
为了使应用应用起来感觉流畅、愉快和友好,你应当仔细的设计应用的通知。通知系统增强了你的应用,使你的应用更具特点。不必要的通知反而会使用户觉得讨厌
何时显示通知
让人们喜爱你的应用,那么值得了解的是用户的注意力是需要保护的。Android 通知系统的设计就是要尽量减小对用户注意力的影响,但是仍要注意同时是会打断用户的操作的。当你设计通知时,请仔细考虑是否值得去打断用户。如果你不确定的话,给用户选择是否弹出通知,或者设置优先级标志。
好的应用只在需要它说话的时候才说话,但是有一些情况下有必要使用通知来打断用户。
通知主要被用在时间敏感的事件上,特别是和其他人有关的同步事件。例如聊天时的消息: 有另一个用户正等着你的回应。日历事件则是另一个例子,它需要通过通知引起用户的注意,因为这些事件不能错过,而且有时候也和他人有关系。
何时不要显示通知
有些情况下不要使用通知影响用户:
不要用一些和他们没有直接关系或者不是时间敏感的事件干扰用户。例如社交网络的一些新鲜事,它们都不是很需要实时回应的。不过对于那些关注这些新鲜事的用户,给他们选择。
如果这个事件已经显示在屏幕上了,就不要再用通知了。而是在应用界面中通知用户。例如用户正在使用聊天应用的聊天的时候,就没必要再使用通知告知用户对方有回应消息了。
不要用技术细节来打扰用户,比如保存、同步或者升级。如果应用可以自己处理,就不要问用户。
不要用应用的错误消息打扰用户,如果应用可以快速恢复,那就不要问用户。
不要搞没有内容的通知,也不要打广告。通知是用来告诉用户某个事件,而不是仅仅为了打开一个应用。
不要仅仅是将你的应用显示在用户眼前。这样的通知只会使你的用户疏远你的应用。如果想让你的用户持续看到你的应用,做个小工具让用户可以选择放在主屏幕上。
通知的交互操作
通过图标来区分不同应用的通知。通过下拉通知抽屉打开通知。
在通知抽屉里,通知按照时间的逆序从上到下排列。触摸通知打开详细信息。左右滑动可以删除通知。
正在进行的
“正在进行的”通知使用户了解正在运行的后台进程。例如,音乐播放器可以显示正在播放的音乐。也可以用来显示需要长时间处理的操作,例如下载或编码视频。“正在进行的”通知不能被手动删除。
使用对话框和 toasts 反馈信息而不要用通知
如果你的应用不在当前的屏幕上,不要显示对话框或 toast。对话框和 toast 只用来显示应用中操作的结果。例如,用对话框确认操作,用 toast 提示操作成功。对于对话框和 toasts 使用的更多细节,请阅读 确认和提示 一节.