譯自:http://www.grokkingandroid.com/enabling-and-disabling-broadcastreceivers/
在運行時啓用和禁用廣播接收者
禁用或者啓用廣播接收者
PackageManager pm = getPackageManager();
ComponentName compName =
new ComponentName(getApplicationContext(),
YourReceiver.class);
pm.setComponentEnabledSetting(
compName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
COMPONENT_ENABLED_STATE_DEFAULT | 設置爲manifest中配置狀態 |
COMPONENT_ENABLED_STATE_DISABLED | 設置爲禁用 |
COMPONENT_ENABLED_STATE_ENABLED | 設置爲啓用 |
setComponentEnabledSetting()方法支持如下三種狀態
DONT_KILL_AP模式可以避免你的應用被殺死,並且
BroadcastReceivers的使用也是安全可靠的。當然如果你不使用DONT_KILL_APP模式,即使在絕大多數匆忙測試的情況下你也會發現錯誤~默認禁用廣播接收者
<receiver
android:name=".YourReceiver"
android:enabled="false">
<!-- your intent filter -->
</receiver>