Android应用开发之(按需设置Broadcast receiver)
来源:互联网 发布:sql2000附加数据库金蝶 编辑:程序博客网 时间:2024/04/27 03:39
Android应用开发之(按需设置Broadcast receiver)
BroadcastReceiver有它的执行点, 过多的注册BroadcastReceiver会消耗系统性能,
本文讲下如何通过动态的注册BroadcastReceiver来避免对性能的影响。
最简单的方式监测系统状态的变化就是为每个需要监测的状态都注册一个BroadcastReceiver。然后在这些Receiver中根据不同的状态去修改您程序的功能和逻辑。
通过这种方式有个弊端就是每次程序收到这个事件的时候都会唤醒设备CPU– 而大部分的事件对程序是没用的。
一种更好的做法就是在运行时禁用/启用Broadcast receiver,这样在Manifest文件中注册的Receiver就只会在需要的时候才接收事件。
动态启用Receiver来提高性能
用户可以使用PackageManager来启用/禁用在Manifest文件中定义的组件,下面的代码演示了如何禁用/启用一个特定的Receiver:
ComponentName receiver =newComponentName(context, myReceiver.class); PackageManager pm = context.getPackageManager(); pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)
通过这种手段,如果您发现网络连接已经断开了,除了网络状态Receiver以为 您就可以禁用其他的Receiver了。相反的,一旦网络连接恢复了,您就可以禁用网络状态Receiver了, 在每次数据更新前都检测下网络是否可用,并且根据网络状态重新协调相关的Receiver和程序的功能。
您可以用同样的手段来延迟一些需要高速网才能完成的操作。只需要启用一个Receiver来监测连接类型的变化,当用户使用Wi-Fi的时候才开始启动下载操作。
- Android应用开发之(按需设置Broadcast receiver)
- android_Android应用开发之(按需设置Broadcast receiver)
- Android开发之Broadcast Receiver 详解
- android开发 - Broadcast Receiver
- android 之broadcast receiver
- android开发 关于BroadCast Receiver
- Android基本之Broadcast Receiver
- 精通android之Broadcast Receiver
- Android基本之Broadcast Receiver
- Android组件之Broadcast Receiver
- android之Broadcast Receiver详解
- Android开发学习之路--Broadcast Receiver之初体验
- android开发广播的使用Broadcast Receiver
- Android四大组件之Broadcast Receiver
- Android的四大组件之Broadcast Receiver
- Android四大组件之Broadcast Receiver
- Android 四大组件 之 Broadcast/Receiver 流程
- Android基础系列之Broadcast Receiver
- opencv二值图孔洞填充算法(方法系转载)
- sgu 122 The book
- Problem A: Arti cial Intelligence? 结题报告
- 图像变形(二)
- 10月总结
- Android应用开发之(按需设置Broadcast receiver)
- 歌厅歌曲管理系统(转)用c语言实现的一个课程设计
- python:将数字转换成用英文表达的程序
- Oracle中的NULL和空字符串
- 第八章 类高级概念
- 我的JAVA学习笔记(记下一些容易忘记的知识点)持续更新
- C编程解线性代数二阶三阶矩阵(奇迹冬瓜)
- android 简单的触屏事件
- 读完《深度探索C++对象模型》第一遍感悟