1. 程式人生 > >8.0通知欄新增通知渠道,及自定義通知 響應點選事件

8.0通知欄新增通知渠道,及自定義通知 響應點選事件

今天寫了下demo 發現通知在8.0後有些改變記錄下這個坑!!!!

通知的程式碼大家在網上一搜一大把,我也不廢話 直接上重點。

點擊發送通知,沒有通知顯示,程式碼如下。

日誌資訊

明明走了這行程式碼卻什麼也沒發生,what? 難道寫錯了?,後來查看了資料下才知道是8.0後加了個叫通知渠道的東西,簡單點說 就相當於一個ID,標記當前是什麼通知,用於給系統識別的,

,且上面方法已經廢棄掉了,必須帶有通知渠道的 通知才能展示!

稍稍調整下程式碼

 

給一個CHANNEL_ID 的標識,重點是這個NotificationChannel 這個類,再建立通知前一定要createNotificationChannel()

這個方法只會走一次,而且不影響效率,也不會重複建立

 NotificationChannel

執行後效果,通知就出來了

 

什麼是通知渠道

Android 8.0 功能和 API  

官方解釋在上面

Android 8.0 系統,Google引入通知渠道,提高使用者體驗,方便使用者管理通知資訊,同時也提高了通知到達率

什麼是通知渠道呢?顧名思義,就是每條通知都要屬於一個對應的渠道。每個App都可以自由地建立當前App擁有哪些通知渠道,但是這些通知渠道的控制權都是掌握在使用者手上的。使用者可以自由地選擇這些通知渠道的重要程度,是否響鈴、是否振動、或者是否要關閉這個渠道的通知。

 

 

通知適配

build.gradle 中targetSdkVersion設定大於等於26。這時如果不對通知渠道適配,通知就無法顯示。

程式碼在上面有,主要是這個

 

自定義通知和點選事件

 

點選自定義通知效果及日誌

 

點選後跳轉我想要的頁面

 

日誌

 

只要是用

RemoteViews的setOnClickPendingIntent  給某個控制元件設定點選事件, 網上大多是通過
PendingIntent  設定廣播,如果我只需要做單純的跳轉某個介面沒必要這麼麻煩。。。