Android--靜態廣播和動態廣播的區別


一、標准廣播and有序廣播

標准廣播發出后所有廣播接受器幾乎同一時刻收到廣播,並且沒有順序,所以廣播不可被截斷。

有序廣播發出后同一時刻只能有有一個廣播接收器收到廣播消息,因此優先級高的廣播的先收到消息,並且前面的接受器還可以截斷消息。

二、動態注冊廣播接收器

注冊廣播的方式有兩種:靜態注冊和動態注冊

靜態注冊是在AndroidManifest.xml注冊文件里注冊,動態注冊時在代碼中注冊

(1)創建廣播接收器

創建一個類繼承BroadcastReceiver 並重寫onReceive()方法

(2)在onCreat()方法中創建IntentFilter實例

實現Intent過濾器類,並且添加調用.addAction()方法,添加想要監聽的action。

(3)在oncreat()方法中實現剛才寫的廣播接聽器

(4)調用registerReceiver()方法注冊

registerReceiver(BroadcastReceiver,IntentFilter)將要注冊的廣播接收器和intent過濾器傳給函數,這樣就注冊了專門用於接收某種action的廣播接收器。

(5)動態注冊需要在onDestroy()方法中取消注冊

unregisterRecevier(BroadcastReceiver)

二、靜態注冊廣播接收器

(1)與動態一樣創建繼承BroadcastRecevier的類並重寫onReceiver()方法

(2)在注冊表AndroidManifast.xml里添加注冊代碼

<receiver
android:name=“.xxx繼承自BroadcaseRecevier類”
android:enable="true"
android:exported="true"
>
<intent-filter>
<action android:name="android.intent.action.XXX想要監聽的action"></action>
</intent-filter>
</receiver>

  (3)其中enable是指是否啟動這個廣播接收器;exported:是否允許接收本程序以外的廣播

二、靜態注冊與動態注冊

動態注冊可以自由控制注冊與注銷,但是必須要在程序將啟動后才可以接收。而靜態則可以監聽。

在廣播接收器中不要寫太多操作,並且不能使用進程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM