posts - 101,  comments - 29,  trackbacks - 0

          廣播接收者(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 閱讀(148) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 西城区| 丹东市| 华池县| 赞皇县| 鹤庆县| 普兰县| 陇西县| 克什克腾旗| 根河市| 廉江市| 贵阳市| 襄垣县| 梅河口市| 弋阳县| 郧西县| 建德市| 吴江市| 松桃| 山丹县| 清涧县| 古丈县| 章丘市| 花莲市| 八宿县| 绥宁县| 克什克腾旗| 鄯善县| 永新县| 中宁县| 绥中县| 平利县| 辽中县| 商丘市| 腾冲县| 务川| 治多县| 滦南县| 乌拉特中旗| 桐柏县| 赫章县| 富民县|