Android廣播(筆記)

在Android程序中使用廣播,有兩種註冊廣播接收器的方式,區別如下:
第一種方式:在AndroidManifest.xml文件中註冊
<receiver android:name="MyReceiver" >
            <intent-filter >
                <action android:name="com.and.android.intent.action.TEST" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
            </intent-filter>
</receiver>

這裡註冊瞭自己的廣播接收器,可以接收兩種類型的廣播,第一個是自定義的動作,第二個是系統的,當WIFI狀態改變。都是為瞭測試,隨便添加瞭一個。
這種註冊方式是常駐型,當應用程序關閉後(沒有卸載前),如果有相應廣播信息來,程序也會被系統調用自動運行。
第二種方式:在程序代碼中動態註冊
BroadcastReceiver receiver = new MyReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);//這裡添加系統廣播,當屏幕關閉的時候發送
filter.addAction(ACTION_INTENT_TEST);
registerReceiver(receiver, filter);

這種註冊方式不是常駐型,廣播接收器跟隨Activity的生命周期。註意在Activity結束前解除註冊廣播接收器

unregisterReceiver(receiver);
 假設忘記解除註冊,系統中也不會保留。即當有廣播來,程序也不會處理。

 

摘自 繼續革命

發佈留言