有幾種類型的情境可能會要求你把應用程式中發生的事件通知給使用者。有些事件需要使用者響應,而有些則不需要。例如:
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介面來使用。