Android 用户界面---通知(Notifications)概要
有几种类型的场景可能会要求你把应用程序中发生的事件通知给用户。有些事件需要用户响应,而有些则不需要。例如:
1. 当像文件保存完成的一个事件发生时,就应该显示一个短消息,提示用户保存成功了。
2. 如果应用程序正在后台运行,并且需要用户的关注,那么应用程序就应该创建一个允许用户方便响应的通知。
3. 如果应用程序正在执行用户必须等待的工作(如装载文件),那么应用程序就应该显示一个悬停的进度对话框。
每种通知任务都能够使用以下三种不同的技术来实现:
1. 广播通知,主要针对来自后台的短消息;
2. 状态栏通知,主要针对来自后台的并要求用户响应的持续性提醒;
3. 对话框通知,主要针对Activity相关的通知。
广播通知(Toast Notification)
广播通知是弹出到窗口表明的一个消息(如图1所示)。它仅填充了消息要求的空间大小,并且依然保留当前Activity的可先性和交互性。这种类型的通知自动的渐入渐出,而且不接受交互事件。因为广播通知是由后台服务创建的,即使应用程序不可见,它也会显示。
图1
广播通知最好用短文本消息,如“文件保存成功”。广播通知不能接收用户交互事件,如果希望能够的到用户的响应,可以考虑私用状态栏通知来替代。
状态栏通知(Status Bar Notification)
状态栏通知会把一个图标(带有一个可选的提示文本消息)添加到系统的状态栏(如图2所示),并把一个展开的消息添加到通知窗口中。当用户选择这个展开的消息时,Andriod会触发一个由通知定义的Intent对象(通常是要启动一个Activity)。你也能够在设备上给通知配置一个声音、震动、屏幕闪亮等效果以提醒用户。
图2
当用户的应用程序正在一个后台服务中工作,并且需要把一个内部事件通知给用户时,这种类型的通知是非常合适的。如果你需要把发生的事件通知给用户的同时,Activity不能保留焦点,可以考虑使用对话框通知来代替。
对话框通知(Dialog Notification)
对话框通常是显示在当前Activity前面的一个小窗口。它下面的Activity会失去焦点,并且对话框会接受所有的用户交互。对话框通常直接用于与应用程序内进度相关的通知和短期活动。
当你需要显示一个进度条或需要用户确认的短消息时,应该使用对话框(如带有“OK”和“Cancel”按钮的提示框)。你也能够把对话框作为集成应用程序组件的UI界面来使用。