在不少情况下会需要通知用户程序当前发生的事件。一些事件需要用户回应,另一些则不需要。例如:
- 当比如保存文件之类的事件完成时,应该出现一条信息确认保存成功。
- 如果程序运行于后台,需要获取用户的注意时,程序应该创建一条通知让用户根据情况作出回应。
- 如果程序正在执行需要用户等待的任务(比如读取文件),程序应该显示进度圈或是进度条。
以上每一种通知任务都是通过不同技术实现的:
- Toast通知,用于来自后台的简单信息。
- 状态条通知,用于来自后台需要用户回应的长期消息。
- 对话框通知,用于和活动相关的通知。
本文综述了这些用以通知用户的技术,并包含了指向完整文档的链接。
Toast通知
toast通知是出现在窗口表层的弹出式信息。它只占用信息所需的空间,用户当前的活动仍然是可见且能够操作的。该通知自动地淡入淡出,不接受交互事件。toast可以由后台服务创建,因此即使程序本身不可见,也能够被显示。
toast最适合于确定用户正在关注屏幕时显示简短信息,例如“文件已保存”。toast不能接受用户交互事件;如果希望用户进行回应并作出操作的话,就要改用状态条通知。
更多信息,请参考“创建toast通知”。
状态条通知(Status Bar Notification)
状态条通知会向系统状态条添加一个图标(还可以附有文本消息)以及一条“通知”窗口内的可扩展消息。当用户选择了该可扩展消息,Android发出一个有通知定义的Intent(通常来启动一个活动)。也可以设置通知来以声音、振动和设备闪光来提醒用户。
这类通知适用于程序在后台服务中工作、需要通知用户某一事件时。如果需要在活动仍然处于焦点时提示用户某一事件的发生的话,考虑该用对话框通知比较好。
更多信息,参阅“创建状态条通知”。
对话框通知(Dialog Notification)
对话框通常是一个出现于当前活动前方的小窗口。下层的活动失去了焦点使得对话框将接受所有的用户交互操作。对话框常用作通知以及和程序执行过程直接相关的活动。
应当在需要显示一个进度条或有需要用户确认的简短消息(比如一个有“Ok”和“取消”按钮的提示)的情况下使用对话框。也可以将对话框作为程序UI的一个组成部分等其他非通知用途。要获取关于所有可用的对话框类型的完整讨论以及其使用方法,参阅“创建对话框”。
返回用户界面
本作品采用知识共享 署名-非商业性使用-禁止演绎 3.0 Unported许可协议进行许可。