廣播機制(四)

      廣播機制
1.廣播接收器(Broadcast Receiver) :
 1.標準廣播 : 是一種徹底異步執行的廣播,在廣播發出以後,全部的廣播接收器幾乎都會在同一時刻接收到這條廣播消息,
   所以它們之間沒有任何前後順序可言。這種廣播的效率會比較高,但同時也意味着它是沒法被截斷的。
 2.有序廣播 : 是一種同步執行的廣播,在廣播發出以後,同一時刻只會有一個廣播接收器可以收到這條廣播消息,
   當這個廣播接收器中的邏輯執行完畢後,廣播纔會繼續傳遞。因此此時的廣播接收器是有前後順序的,
   優先級高的廣播接收器就能夠先收到廣播消息,而且前面的廣播接收器還能夠截斷正在傳遞的廣播,
   這樣後面的廣播接收器就沒法收到廣播消息了。android

2.動態註冊監聽網絡變化 :  缺點,必須該活動啓動時,才能使用廣播器
 1.建立一個廣播器,繼承BroadcastReceiver現實onReceive方法
 2.在活動的onCreate方法中,建立IntentFilter 而且監聽Intent的變化
 3.爲被監聽者註冊一個廣播器
    IntentFilter filter = new IntentFilter();
         filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");           //監聽網絡變化時的廣播器 : 當網絡狀態發生變化時
          network = new NetWorkchangeBroadCast();    //BroadcastReceiver的子類
          registerReceiver(network, filter);      //將自定義的廣播器註冊到這個IntentFilter鏈中
 4.最後在活動銷燬行爲中註銷掉該廣播器安全

3.靜態註冊實現開機啓動 : 優勢,不須要啓動該活動也可使用廣播器
 1.建立一個廣播器,繼承BroadcastReceiver現實onReceive方法
 2.AndroidManifest.xml中註冊該廣播器 標籤爲 <receiver>
   <receiver android:name=".broadcast.BootCompleteReceiver">
            <intent-filter> <!--    爲手機開機註冊一個靜態的廣播器 須要權限    -->
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>網絡


4.須要注意的是:
 不要在 onReceive()方法中添加過多的邏輯或者進行任何的耗時操做, 由於在廣播接收器中是不容許開啓線程的,
 當 onReceive()方法運行了較長時間而沒有結束時, 程序就會報錯。
 所以廣播接收器更多的是扮演一種打開程序其餘組件的角色,好比建立一條狀態欄通知,或者啓動一個服務等。異步

5.發送自定義標準廣播:
 1.建立一個Intent 名字爲com.example.broadcasttest.MY_BROADCAST
 2.sendBroadcast(intent);  經過廣播形式發送該意圖(Intent),發送標準廣播
 3.建立一個廣播器,繼承BroadcastReceiver現實onReceive方法
 4.在AndroidManifest.xml中監聽該意圖(Intent).net

6.發送自定義有序廣播
 1.sendBroadcast(intent); 替換成 sendOrderedBroadcast(intent, null);  發送有序廣播
 2.在AndroidManifest.xml 設置優先級 <intent-filter android:priority="100" >
 3.在onReceive方法中調用abortBroadcast();表示廣播截斷, 後面的廣播接收器將沒法再接收到這條廣播線程

7.本地廣播(LocalBroadcastManager)
 1.由LocalBroadcastManager類調起的方法都是本地廣播。用法和所有廣播一致xml

本地廣播的優點:
 1.能夠明確地知道正在發送的廣播不會離開咱們的程序, 所以不須要擔憂機密數據泄
  漏的問題。
 2.  其餘的程序沒法將廣播發送到咱們程序的內部, 所以不須要擔憂會有安全漏洞的隱
  患。
 3.  發送本地廣播比起發送系統全局廣播將會更加高效。
 繼承

注:在多個廣播器在同時監聽同一個意圖時,是能夠的,也能接收到同步

相關文章
相關標籤/搜索