Android Broadcast Receiver 簡單例子

Android BroadcastReceiver

(學習mars老師的視頻)

註冊的方式

有兩種:

一個是在AndroidManifest.xml中聲明:

        <receiver android:name=".Test_Receiver" >

            <intent-filter>

                <action android:name="android.intent.action.sss" />

            </intent-filter>

         </receiver>

類文件裏面的代碼:

                       Intent intent = new Intent();

                       intent.setAction("android.intent.action.sss");

                       Test_BCActivity.this.sendBroadcast(intent);

 

另一個是代碼註冊:

綁定receiver

publicstaticfinal String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";

                      // 生成一個receiver對象

                      receiver = new Test_Receiver();

                      // 生成一個filter對象

                      IntentFilter  intentFilter = new IntentFilter();

                      // filter添加一個action

                      intentFilter.addAction(SMS_RECEIVED_ACTION);

                      Test_BCActivity.this.registerReceiver(receiver, intentFilter);

解除綁定receiver

Test_BCActivity.this.unregisterReceiver(receiver);

兩者的主要區別是,xml文件中註冊的廣播機制,在應用程序關閉之後,依然運行。一直運行。通過代碼註冊的廣播是在應用程序關閉之後是關閉的,及時生效。

 

關於receiver類的代碼

publicclass Test_Receiver extends BroadcastReceiver {

      public Test_Receiver()  {

           Log.d("Test_Receiver", "構造函數");

      }

      @Override

      publicvoid onReceive(Context  context, Intent intent) {

           // TODO Auto-generated method stub

           Log.d("Test_Receiver", "OnReceive");

      }

}

 

發佈了46 篇原創文章 · 獲贊 5 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章