posts - 101,  comments - 29,  trackbacks - 0

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

          廣播機制:

          要實現(xiàn)一個廣播接收者方法如下:


          界面:


          第一步:要想實現(xiàn)一個廣播機制,就必須實現(xiàn)一個類,這個類繼承于BroadcastReceiver并重寫onReceive()方法。

          事件響應的實現(xiàn)應在onReceive方法中實現(xiàn)。

          第二步:訂閱感興趣的廣播Intent,訂閱方法有兩種:
          第一種:使用代碼進行訂閱
          IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
          IncomingSMSReceiver receiver = new IncomingSMSReceiver();
          registerReceiver(receiver, filter);
          第二種:在AndroidManifest.xml文件中的<application>節(jié)點里進行注冊:
          <intent-filter>是一個過濾器。

          在發(fā)送廣播過程中,如果某個BroadCastReceiver的Action和這里的Action相符合,則啟動,接受廣播。


          生命周期:

          每次廣播到來時,會重新創(chuàng)建BroadcastReceiver對象,并且調用onReceive()方法,執(zhí)行完以后,該對象即被銷毀.

          當onReceive()方法在10秒內沒有執(zhí)行完畢,Android會認為該程序無響應.所以在

          BroadcastReceiver里不能做一些比較耗時的操作,否側會彈出ANR(Application No

          Response)的對話框.。

           

          posted on 2012-01-31 18:00 mixer-a 閱讀(148) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 徐汇区| 名山县| 玛曲县| 永宁县| 庆元县| 噶尔县| 霞浦县| 拉萨市| 闸北区| 淄博市| 喀喇沁旗| 伊吾县| 承德市| 杨浦区| 定南县| 新田县| 海口市| 上高县| 平顶山市| 桑植县| 和林格尔县| 云梦县| 建瓯市| 崇州市| 淳安县| 无极县| 林芝县| 建昌县| 托克逊县| 临沧市| 遵化市| 苍梧县| 阿鲁科尔沁旗| 汤原县| 乌什县| 襄汾县| 安溪县| 京山县| 岳阳县| 迭部县| 拜泉县|