8.0通知欄新增通知渠道,及自定義通知 響應點選事件
阿新 • • 發佈:2018-11-12
今天寫了下demo 發現通知在8.0後有些改變記錄下這個坑!!!!
通知的程式碼大家在網上一搜一大把,我也不廢話 直接上重點。
點擊發送通知,沒有通知顯示,程式碼如下。
日誌資訊
明明走了這行程式碼卻什麼也沒發生,what? 難道寫錯了?,後來查看了資料下才知道是8.0後加了個叫通知渠道的東西,簡單點說 就相當於一個ID,標記當前是什麼通知,用於給系統識別的,
,且上面方法已經廢棄掉了,必須帶有通知渠道的 通知才能展示!
稍稍調整下程式碼
給一個CHANNEL_ID 的標識,重點是這個NotificationChannel 這個類,再建立通知前一定要createNotificationChannel()
這個方法只會走一次,而且不影響效率,也不會重複建立
NotificationChannel
執行後效果,通知就出來了
什麼是通知渠道
官方解釋在上面
Android 8.0 系統,Google引入通知渠道,提高使用者體驗,方便使用者管理通知資訊,同時也提高了通知到達率
什麼是通知渠道呢?顧名思義,就是每條通知都要屬於一個對應的渠道。每個App都可以自由地建立當前App擁有哪些通知渠道,但是這些通知渠道的控制權都是掌握在使用者手上的。使用者可以自由地選擇這些通知渠道的重要程度,是否響鈴、是否振動、或者是否要關閉這個渠道的通知。
通知適配
build.gradle 中targetSdkVersion設定大於等於26。這時如果不對通知渠道適配,通知就無法顯示。
程式碼在上面有,主要是這個
自定義通知和點選事件
點選自定義通知效果及日誌
點選後跳轉我想要的頁面
日誌
只要是用
RemoteViews的setOnClickPendingIntent 給某個控制元件設定點選事件, 網上大多是通過
PendingIntent 設定廣播,如果我只需要做單純的跳轉某個介面沒必要這麼麻煩。。。