Notifucation 通知

Notification 是顯示在手機狀態欄的通知 ----- 手機狀態欄位於手機屏幕的最上方,那裏一般顯示手機當前的網絡狀態、電池狀態、時間等。Notification 所代表的是一種具有全局效果的通知,程序一般通過 NotificationManager 服務來發送 Notification。

Android 爲 Notification 提供了 Notification.Builder 類,通過該類允許開發者更輕手的創建 Notification 對象。 Notification.Builder 提供瞭如下常用方法:

  1. setDefaults():設置通知 LED 燈、音樂、振動等;
  2. setAutoCancel():設置點擊通知後,狀態欄自動刪除通知;
  3. setContentTitle():設置通知標題;
  4. setContentText():設置通知內容;
  5. setSmallIcon():爲通知設置圖標;
  6. setLargeIcon():爲通知設置大圖標;
  7. setTick():設置通知在狀態欄的提示文本;
  8. setContentIntent():設置點擊通知後將要啓動的程序組件對應的 PendingIntent ;

Android 8 加入了通知 Channel 幫助用戶來統一管理通知,開發者可以爲不同類型的通知創建同一個通知 Channel ,而用戶則可通過該 Channel 統一管理這些通知的行爲 ------ 所有使用同一個 Channel 的通知都具有相同的行爲。

通知 Channel 可統一管理通知的如下行爲:

  1. 重要性;
  2. 聲音;
  3. 閃光燈;
  4. 振動;
  5. 在鎖屏上顯示;
  6. 替換免打擾模式;

APP 第一次運行時可通過程序設置通知 Channel 的行爲,但用戶完全可以通過 Settings 來改變通知 Channel 的行爲,甚至可以隨時屏蔽通知 Channel 。一旦用戶修改了該通知 Channel 的行爲之後,程序將無法通過編程方式修改通知 Channel 的行爲,這些設置完全有用戶控制。

Android 9 再次改進了消息機制,它新增如下兩個功能。

  1. 增強了通知參與者的支持。程序在創建 MessageStyle 時應使用 Person (支持名字、頭像等)作爲參數,不推薦使用普通的 CharSequence 作爲參數,這樣可爲通知參與者設置更豐富的信息;
  2. 消息支持更豐富的數據。Message 對象可使用 setData() 方法設置更多樣的通知數據(如圖片),而不像以前僅支持文字通知。

發送 Notification 很簡單,按如下步驟進行即可:

  1. 調用 getSystemService(NOTIFICATION_SERVICE) 方法獲取系統的 NotificationManager 服務;
  2. 創建 NotificationChannel 對象,並在 NotificationManager 上創建該 Channel 對象;
  3. 通過構造器創建一個 Notification.Builder 對象;
  4. 爲 Notification.Builder 設置通知的各種屬性;
  5. 創建 MessageStyle 和 Message , 通過 Message 設置消息內容,爲 Notification.Builder 設置 MessageStyle 後創建 Notification;
  6. 通過 NotificationManager 發送 Notification;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章