android broadcastReceiver启用禁用
来源:互联网 发布:淘宝宠物医生 编辑:程序博客网 时间:2024/05/02 03:05
有时候我们需要在我们需要启用receiver的时候启用,不需要的时候就不想让代码去执行receiver里面的函数方法。
两种receiver,现在只看静态注册的receiver。因为动态注册的receiver更加容易的控制。
两点注意事项:
1,AndroidManifest文件中注册receiver时,默认receiver为禁用状态。android:enabled="false"
<receiver android:name=".BatteryReceiver" android:enabled="false"> <intent-filter > <action android:name="android.intent.action.BATTERY_LOW"/> </intent-filter> <intent-filter > <action android:name="android.intent.action.BATTERY_OKEY"/> </intent-filter> <intent-filter > <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> </intent-filter> <intent-filter > <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> </intent-filter> </receiver>2,在需要的时候将receiver启用,不需要时禁用。例如下面code,我们只有在本activity可见的界面启用,不可见界面禁用。
private void enableBatteryReceiver(boolean enabled){ PackageManager pm = getPackageManager(); ComponentName receiverName = new ComponentName(this,BatteryReceiver.class); int newState = enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED:PackageManager.COMPONENT_ENABLED_STATE_DISABLED; pm.setComponentEnabledSetting(receiverName, newState, PackageManager.DONT_KILL_APP); }@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();unregisterReceiver(mBatteryChangeReceiver);enableBatteryReceiver(false);}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();if(mBatteryChangeReceiver == null){createBatteryChangeReceiver();}registerReceiver(mBatteryChangeReceiver, new IntentFilter(Intent.ACTION_BATTERY_OKAY));enableBatteryReceiver(true);}
- android broadcastReceiver启用禁用
- Android 禁用/启用移动数据的实现
- Android-开机自动启动程序并禁用返回键(BroadcastReceiver)
- 网卡禁用启用,usb监测,禁用启用
- Android动态启用和禁用Component(activity,receiver,service)
- Android APP通过配置实现启用/禁用GOOGLE API
- Android动态启用和禁用Component(activity,receiver,service)
- Android 系统机制&源码分析---WIFI启用/禁用
- 禁用启用网卡
- 本地连接禁用/启用脚本
- 禁用、启用网络连接
- 禁用与启用触发器
- usb禁用、启用
- 禁用与启用触发器
- 网卡禁用和启用
- 启用/禁用触发器
- JQuery 禁用启用按钮
- 启用/禁用 a元素
- Qt发送http请求
- MacVim 安装 Zen-Coding 插件
- linux安装jdk和tomcat
- 学生成绩统计
- linux shell script 通过管道执行 sudo 权限
- android broadcastReceiver启用禁用
- 从某一文件夹下查找所有的文件
- Inno setup 常用修改技巧
- windows8中实现超链接
- PHP 用什么代替 echo exit 的调试方法
- 树莓派(raspberry pi)学习13: 树莓派真机上手,开机报告
- pyGame编程之初次pygame
- 开源数据库连接池Bonecp应用
- windows8中的界面网格的填写