android 静态broadcastReceiver启用禁用

有时候我们需要在我们需要启用receiver的时候启用,不需要的时候就不想让代码去执行receiver里面的函数方法。

两种receiver,现在只看静态注册的receiver。因为动态注册的receiver更加容易的控制。

两点注意事项:

1,AndroidManifest文件中注册receiver时,默认receiver为禁用状态。android:enabled="false"

 1 <receiver android:name=".BatteryReceiver" android:enabled="false">
 2             <intent-filter >
 3                  <action android:name="android.intent.action.BATTERY_LOW"/>
 4             </intent-filter>
 5             <intent-filter >
 6                  <action android:name="android.intent.action.BATTERY_OKEY"/>
 7             </intent-filter>
 8             <intent-filter >
 9                  <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
10             </intent-filter>
11             <intent-filter >
12                  <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
13             </intent-filter>
14         </receiver>

 

 2,在需要的时候将receiver启用,不需要时禁用。例如下面code,我们只有在本activity可见的界面启用,不可见界面禁用

 1     private void enableBatteryReceiver(boolean enabled){
 2         
 3         PackageManager pm = getPackageManager();
 4         ComponentName receiverName = new ComponentName(this,BatteryReceiver.class);
 5         int newState = enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED:PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
 6         pm.setComponentEnabledSetting(receiverName, newState, PackageManager.DONT_KILL_APP);
 7     
 8     }
 9     @Override
10     protected void onPause() {
11         // TODO Auto-generated method stub
12         super.onPause();
13         unregisterReceiver(mBatteryChangeReceiver);
14         enableBatteryReceiver(false);
15     }
16     @Override
17     protected void onResume() {
18         // TODO Auto-generated method stub
19         super.onResume();
20         if(mBatteryChangeReceiver == null){
21             createBatteryChangeReceiver();
22         }
23         registerReceiver(mBatteryChangeReceiver, new IntentFilter(Intent.ACTION_BATTERY_OKAY));
24         enableBatteryReceiver(true);
25     }

 

posted on 2013-04-23 16:22  _此名没人用  阅读(544)  评论(0)    收藏  举报

导航