在對《Android Design》進行翻譯時發(fā)現:Android系統(tǒng)已經提出了一些關于通知消息的設計建議,故在此分享給大家。
一、何時使用通知?
通知主要用于對時間敏感(Time Sensitive)的事件,尤其是涉及他人(Involve another person)的同步事件。例如下面的Gtalk和日歷發(fā)出的通知就是時間敏感,且與人相關的事件。

那么什么時候又不應該使用通知呢?官方的建議是:
不直接針對用戶的,或不緊急的信息。例如SNS中與用戶沒有直接關系的新鮮事。Path可能就犯了這個錯誤。
正顯示在當前屏幕的信息也不必創(chuàng)建一個通知。即正在聊天的時候,就不必再創(chuàng)建關于聊天消息的通知了。
系統(tǒng)可以自己完成而無需用戶操作的簡單動作,例如保存、同步或者是更新應用程序等。
如果發(fā)生錯誤了,但是應用程序可以快速自我恢復,此時也不必用通知去打斷用戶,甚至都可以不用讓用戶知道這個錯誤。
對于用戶不能手動啟動或停止的服務,也不必使用通知。
不要為了讓用戶對你的品牌記憶深刻而創(chuàng)建多余的通知,否則只會讓用戶反感。想讓用戶對你的應用程序保持注意力并且提供少量內容的最好方式是提供小部件(widget)給用戶,讓用戶可以將它放到首頁。
二、通知的設計指南
1. 使其私有化
其他用戶發(fā)過來的通知應該在通知里包含用戶的頭像(Icon/Photo),還要顯示通知的標題(Title)、消息內容(Message)、時間戳(Timestamp),以及應用程序的圖標(Secondary Icon)。

2. 合并同類通知
如果一個應用程序發(fā)出了多個相同類型的通知,而且這些通知都還沒被處理的話(被處理的通知會被移出通知抽屜),那么請將相同類型的通知合并為一個。
合并后的通知會有一個總結性的描述,并且能讓用戶知道一共合并了多少條通知(Number Pending)。

3. 對時間敏感事件的時間戳
默認的系統(tǒng)通知會在通知右上角打上時間戳,如果你認為顯示時間戳對你的通知是沒有意義的,那你可能就要重新考慮是否值得為這條消息創(chuàng)建一條通知了。如果這條通知確實足夠重要,再決定是否不顯示時間戳。
常見的需要顯示時間戳的通知是通訊通知,如Email、短信、聊天消息這種,用戶需要通過時間戳來理解消息的上下文。
4. 通知相關的導航機制
如果用戶點擊了一條通知,此時應該將相關的應用程序打開到可以對通知中提到的內容進行操作的狀態(tài)。但如果用戶點擊了一個合并的通知,應該去到列表頁面(內容頁的上一層級),后面第三部分會詳細闡述。
5. 自我清理
有些通知會在某個時間點出現告知用戶一些相關的信息和提示,但是如果過了那個時間點,這個通知可能對用戶來說就不重要了,此時就應該考慮自動刪除這條通知。
同樣的,用戶查看過的聊天消息或郵件,也應該讓用戶不必手動操作就移除這些通知。
6. 為通知提供預覽
提供一段簡短的文本作為通知的預覽可以讓用戶大致了解通知的內容,從而幫助用戶決定是否立刻查看該通知。

7. 讓用戶決定是否顯示通知
用戶可能對頻繁出現的通知感到厭煩,所以應該讓用戶決定是否顯示通知。因此,在應用程序的設置中應該讓用戶可以取消通知。
8. 使用不同的圖標
為了讓用戶在通知欄看一眼就能知道是哪個應用程序發(fā)出的通知,應該采用有自己特色的圖標。所以在設計應用程序的圖標的時候,應該注意與其他Android應用的通知圖標有比較明顯的區(qū)別。
但需要注意的是不要用顏色來區(qū)分,因為通知圖標通常都是黑白的。
三、通知的導航機制
1. 單條通知與合并通知
如果用戶點擊了一條通知,此時應該將相關的應用程序打開到可以對通知中提到的內容進行操作的狀態(tài)。例如用戶收到一封新郵件的通知,用戶點開該通知后應該去到這封郵件的內容頁。

因為同類通知會被合并,如果用戶點擊了一個合并的通知,應該去到列表頁面(內容頁的上一層級)。在下面的例子中,用戶點開一條合并的新郵件通知后,進入了收件箱界面。

2. 間接通知
如果應用程序需要同時展示多個事件的信息,可以使用一條通知將用戶指引到一個中間界面。這個界面會展示這些事件,并為用戶提供進入應用程序的入口。這種類型的通知被稱為間接通知。
例如一個用戶在Gmail中收到了Calendar發(fā)出的一條間接通知。點擊這條通知后打開一個中間界面(calendar interstitial),這個界面下顯示了幾個事件的提醒,在這個界面點“返回”鍵會回到Gmail,但是如果用戶點擊了某個事件提醒,就會離開這個中間界面并打開Calendar應用程序以顯示這個事件的詳細內容。在這個事件的詳細內容的界面下,點“向上”和“返回”都會去到Calendar應用的首頁。

在間接通知的中間界面點“返回”會回到觸發(fā)該通知的界面,返回路徑中不會被插入其他界面。一旦用戶通過中間界面進入了應用程序,“向上”和“返回”的邏輯就與標準通知一樣了:在應用程序之間進行導航,而不會返回到中間界面。
關于間接通知的詳細內容請查看百度MUX翻譯的《Android Design》的模式Patterns—-導航Navigation章節(jié)。