Broadcast - 廣播
目錄
- 機制
機制
應用程序可以監聽或者發送 Broadcast 進行輕量級的溝通。
廣播的分類
- 標準廣播 - 一條廣播多個接收器幾乎同時收到
- 有序廣播 - 一條廣播按照優先級接收,可以被截斷
接收廣播(BroadcastReceiver)
- 通過BroadcastReceiver進行接收廣播。
- 動態注冊或者靜態注冊BroadcastReceiver
動態注冊:靈活,只有app啟動后才會開始接收廣播
靜態注冊:app沒有啟動都會進行監聽
例子:
- 動態注冊監聽網絡變化
- 靜態注冊監聽系統開機完畢,完成開機自啟
源碼包括3次更新:
- 動態注冊Receiver
- 靜態注冊Receiver用于開機自啟應用
- 自定義廣播的發送與接受
有序廣播
有序廣播的用法和標準廣播用法差不多。
sendOrderedBroadcast(intent,權限相關的字符串可以為null)
用于發送廣播- 通過
Mainfest
文件注冊Receiver
并且給予對應的接收廣播的優先級android:priority="100"
,值越大,優先級越高。- 優先級高的
Receiver
收到廣播后可以通過abortBroadcast()
來截斷廣播。
本地廣播
顧名思義,廣播只能在自身的app中內部傳遞。
使用:// 獲取LocalBroadcastManager實例并發送廣播 private LocalBroadcastManager lb = LocalBroadcastManager().getInstance(this) Intent intent = new Intent("action") lb.sendBroadcast(intent) // 后面就是動態注冊Receiver進行監聽咯