Android N Preview Notification API (通知)
通知
本文內容
Android N 引入了一些新 API,允許應用發布具有高度可見性和交互性的通知。
Android N 擴展了現有?RemoteInput?通知 API,以支持手持式設備上的內聯回復。 此功能允許用戶從通知欄快速進行回復,無需訪問應用。
此外,Android N 還允許捆綁類似的通知并將它們顯示為一則通知。 為了實現此功能,Android N 使用現有的?NotificationCompat.Builder.setGroup()?方法。用戶可以從通知欄展開各通知,并分別對每則通知進行回復和清除等操作。
最后,Android N 還添加了一些新 API,允許您在應用的自定義通知視圖中使用系統裝飾元素。 這些 API 可幫助確保通知視圖與標準模板的展示效果相一致。
本文重點介紹您在應用中使用新通知功能時應加以考慮的一些重要變更。
直接回復
利用 Android N 中的直接回復功能,用戶可以直接在通知界面內快速回復短信或更新任務列表。 在手持式設備上,可通過通知中另外附加的按鈕進行內聯回復操作。 當用戶通過鍵盤回復時,系統會將文本回復附加到您為通知操作指定的 Intent,并將 Intent 發送到手持式設備應用。
圖 1.Android N 添加了?Reply?操作按鈕。
添加內聯回復操作
要創建支持直接回復的通知操作:
在觸發通知操作時系統提示用戶輸入回復。
圖 2.用戶從通知欄輸入文本。
從內聯回復檢索用戶輸入
要從通知界面接收用戶輸入并發送到在回復操作的 Intent 中聲明的 Activity:
以下代碼段說明了方法如何從捆綁包檢索輸入文本:
// Obtain the intent that started this activity by calling // Activity.getIntent() and pass it into this method to // get the associated string.private CharSequence getMessageText(Intent intent) {Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);if (remoteInput != null) {return remoteInput.getCharSequence(KEY_TEXT_REPLY);}return null;}應用可以通過應用邏輯來決定對檢索的文本采取哪些操作。對于交互式應用(例如聊天應用),在通知中提供更多上下文(例如多行聊天記錄,包括用戶自己的消息),以便用戶作出相應回復。當用戶通過?RemoteInput?回復時,使用?setRemoteInputHistory()?方法在回復記錄中加入文本。
捆綁通知
Android N 為開發者提供了表示通知隊列的新方法:?捆綁通知。這類似于 Android Wear 中的通知堆棧功能。 例如,如果應用為接收的消息創建通知,那么在接收到多個消息時,應用會將通知捆綁在一起成為一個群組。 您可以使用現有的?Builder.setGroup()?方法捆綁類似的通知。
通知組對組內的通知施加層次結構。 層次結構的頂層是父級通知,其顯示該群組的摘要信息。 用戶可以逐步展開通知組,隨著用戶深入展開,系統將顯示更多信息。 當用戶展開捆綁包時,系統將顯示其所有子通知的更多信息;當用戶展開其中一則通知時,系統顯示該通知的所有內容。
圖 3.用戶可以逐步展開通知組。
要了解如何將通知添加到組,請參閱將各通知添加到組。
捆綁通知最佳做法
本節提供了有關何時使用通知組而非早期版本 Android 平臺中的?InboxStyle?通知的指南。
何時使用捆綁通知
只有在您的用例滿足以下所有條件時才應使用通知組:
- 子通知為完整通知,且可以單獨顯示,無需群組摘要。
- 單獨顯示子通知更合理。例如:
- 子通知可操作,且每個子通知均有特定的操作。
- 子通知中包含用戶想要查看的更多信息。
好的通知組用例示例包括:顯示傳入消息列表的短信應用,或顯示收到的電子郵件列表的電子郵件應用。
適合顯示單一通知的用例示例包括:從某一個人收到的單獨消息,或以列表表示的單行文本項目。 您可以使用?InboxStyle?或?BigTextStyle?實現此功能。
顯示捆綁通知
即使組內僅含有一則子通知,應用也應發布組摘要。 如果只含有一則通知,系統將取消摘要并直接顯示子通知。 這樣可確保用戶在滑動切換組內的子通知時,系統仍可以提供一致的用戶體驗。
注:本版本 Android N 目前還無法在僅含一則子通知時取消通知組的摘要。 我們將在之后版本的 Android N 中添加此功能。
掃視通知
雖然系統通常以群組的方式顯示子通知,但您可以進行設置,使其暫時作為浮動通知顯示。 該功能非常實用,因為其允許用戶立即訪問最近的子通知以及與其相關的操作。
后向兼容性
自 Android 5.0(API 級別 21)起,Notification?API 中就添加了通知組和遠程輸入,以支持 Android Wear 設備。 如果您已經使用這些 API 構建通知,則只需驗證應用行為是否符合上述指南,并考慮實現?setRemoteInputHistory()。
為了支持后向兼容性,支持庫的?NotificationCompat?類中提供了相同的 API,以便您構建可在早期 Android 版本中運行的通知。 在手持式設備和平板電腦上,用戶只能看到摘要通知,因此應用應仍提供收件箱式或類似形式的通知顯示模式,以顯示群組的全部信息內容。 鑒于 Android Wear 設備允許用戶查看所有子通知,包括更早級別平臺上的通知,您應在不依賴 API 級別的基礎上構建子通知。
自定義視圖
從 Android N 開始,您將可以自定義通知視圖,同時仍可以使用系統裝飾元素,例如通知標頭、操作和可展開的布局。
為啟用該功能,Android N 添加了以下 API,以便您樣式化自己的自定義視圖:
DecoratedCustomViewStyle()如需使用這些新 API,可調用?setStyle()?方法,并向其傳遞所需的自定義視圖樣式。
此代碼段顯示了如何使用?DecoratedCustomViewStyle()?方法構建自定義通知對象。
Notification noti = new Notification.Builder().setSmallIcon(R.drawable.ic_stat_player).setLargeIcon(albumArtBitmap)).setCustomContentView(contentView);.setStyle(new Notification.DecoratedCustomViewStyle()).build();總結
以上是生活随笔為你收集整理的Android N Preview Notification API (通知)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术入股创业注意事项
- 下一篇: KS检验、t检验、f检验、Grubbs检