Android-Broadcast(廣播)

 
一、四大組件之BroadcastReceiver
(1)Broadcast(廣播)--一種普遍運用在應用程序之間傳輸信息的機制
(2)BroadcastReceiver(廣播接受者)--是對發送過來的廣播進行過濾接收並響應的一類組件,它就是用來接收來自系統和應用中的廣播
(3)用途:開機(或網絡狀態改變、或電池電量改變)時產生一條廣播
(4)大大的減小開發的工做量和開發週期
(5)發送:把信息裝入一個Intent對象(如Action、Category)
                  經過調用相應的方法將Intent對象以廣播的形式發送出去【sendBroadcast( ),sendOrderBroadcast ( ).sendStickyBroadcast ( )】
(6)接收:當intent發送之後,全部已經註冊的BroadcastReceiver會檢查註冊時的intentFilter(註冊器)是否與發送的intent相匹配,若匹配則就會調用BroadcastReceiver的onReceiver()方法。因此當咱們定義一個BroadcastReceiver的時候,都須要實現onReceiver()方法。
注意:BroadcastReceiver須要註冊(靜態註冊、代碼註冊)
(7)注意!
①BroadcastReceiver生命週期只有十秒左右
②在BroadcastReceiver裏不能作一些比較耗時的操做
③應該經過發送intent給Service,由Service來完成
④不能使用子線程
(8)廣播的種類:普通廣播(normal broadcast)、有序廣播(優先級)、異步廣播(粘滯性滯留廣播)
(9)添加優先級代碼:<intent-filter     android:priority="100"> ..............</intent-filter >
(10)截斷廣播方法:abortBroadcast( );
(11)靜態註冊:在配置文件中註冊
(12)代碼註冊:IntentFilter intentFilter=new IntentFilter("BC_One"); 
                           BC2 bc2=new BC2( );
                           registerReceiver(bc2,intentFilter);
(13)普通廣播
一、同級別的 動態加載優先級大於靜態加載 (只在代碼正常運行過程當中,死掉了就不行)
二、同級別的接收順序隨機(無序)
三、接收器不能截斷廣播的連續性傳播也不能處理廣播
四、優先級高的先於優先級低的
(14)有序廣播
一、同級別的 動態加載優先級大於靜態加載
二、同級別的接收順序隨機(無序)
三、接收器能截斷廣播的連續性傳播,高級別的廣播接收器收到廣播以後,能夠決定把該廣播是否截斷
四、接收器能截斷廣播的連續性傳播也能處理廣播
相關文章
相關標籤/搜索