廣播接收者(BroadcastReceiver)用于異步接收廣播Intent,廣播Intent的發送是通過調用Context.sendBroadcast()、Context.sendOrderedBroadcast()或者Context.sendStickyBroadcast()來實現的。通常一個廣播Intent可以被訂閱了此Intent的多個廣播接收者所接收。
廣播機制:

要實現一個廣播接收者方法如下:
界面:
第一步:要想實現一個廣播機制,就必須實現一個類,這個類繼承于BroadcastReceiver并重寫onReceive()方法。
事件響應的實現應在onReceive方法中實現。
第二步:訂閱感興趣的廣播Intent,訂閱方法有兩種:
第一種:使用代碼進行訂閱
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
IncomingSMSReceiver receiver = new IncomingSMSReceiver();
registerReceiver(receiver, filter);
第二種:在AndroidManifest.xml文件中的<application>節點里進行注冊:
<intent-filter>是一個過濾器。
在發送廣播過程中,如果某個BroadCastReceiver的Action和這里的Action相符合,則啟動,接受廣播。
生命周期:
每次廣播到來時,會重新創建BroadcastReceiver對象,并且調用onReceive()方法,執行完以后,該對象即被銷毀.
當onReceive()方法在10秒內沒有執行完畢,Android會認為該程序無響應.所以在
BroadcastReceiver里不能做一些比較耗時的操作,否側會彈出ANR(Application No
Response)的對話框.。
posted on 2012-01-31 18:00
mixer-a 閱讀(146)
評論(0) 編輯 收藏