【Android Training - Performance】优化电池续航能力[Lesson 4 - 按需操控Broadcast Receivers是否开启]

原创 2012年03月24日 16:37:54

Manipulating Broadcast Receivers On Demand[按需操控广播接收者]

  • 简单的方法是为我们监测的状态创建一个BroadcastReceiver,并在manifest中为每一个状态进行注册监听。然后,每一个Receiver根据当前设备的状态来简单重新安排下一步执行的任务。[这句话感觉理解有点问题]
  • 上面那个方法的副作用是,设备会在每次收到广播都被唤醒,这有点超出期望,因为有些广播是不希望唤醒设备的。
  • 更好的方法是根据程序运行情况开启或者关闭广播接收者。这样的话,那些在manifest中注册的receivers仅仅会在需要的时候才被激活。

Toggle and Cascade State Change Receivers to Improve Efficiency

[切换是否开启这些状态Receivers来提高效率]
  • 我们可以使用PackageManager来切换任何一个在mainfest里面定义好的组件的开启状态。
  • 可以使用下面的方法来开启或者关闭任何一个broadcast receiver:
ComponentName receiver = new ComponentName(context, myReceiver.class);

PackageManager pm = context.getPackageManager();

pm.setComponentEnabledSetting(receiver,
        PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
        PackageManager.DONT_KILL_APP)

  • 使用这种技术,如果我们判断到网络链接已经断开,那么可以在这个时候关闭除了connectivity-change的之外的所有Receivers。
  • 相反的,一旦重新建立网络连接,我们可以停止监听网络链接的改变。而仅仅在执行需要联网的操作之前判断当前网络是否可以用即可。
  • 你可以使用上面同样的技术来暂缓一个需要带宽的下载操作。可以开启receiver来监听是否连接上Wi-Fi来重新开启下载的操作。

学习自:http://developer.android.com/training/monitoring-device-state/manifest-receivers.html
转载请注明出处:http://blog.csdn.net/kesenhoo,谢谢!

【Android Training - Performance】优化电池续航能力[Lesson 1 - 监测设备的电量与充电状态]

显然,手持设备的电量需要引起很大的重视。通过这一系列的课程,可以学会如何根据设备电池状态来改变App的某些行为与功能。通过在断开连接时关闭后台服务,在电量减少时减少更新数据的频率等等操作可以在不影响用...

【Android Training - Performance】提高显示布局文件的性能[Lesson 3 - 按需载入视图(ViewStub的使用方法)]

Loading Views On Demand [按需载入视图] 某些时候,我们需要一些很复杂的视图却仅仅很少用到。如果我们在它仅仅需要的时候再载入,这样可以减少内存的使用并且给用户带来流畅的体验。 ...

Android官方开发文档Training系列课程中文版:电池续航时间优化之检查、检测网络连接状态

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/connectivity-monitoring.html 通常会有...

Android官方开发文档Training系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/docking-monitoring.html 译者提示:这...

Android Training - 提升布局文件的性能(Lesson 3 - 使用viewStub按需载入视图)

Android Training - 提升布局文件的性能(Lesson 3 - 使用viewStub按需载入视图) Loading Views On Demand 某些时候...

【Android Training - Multimedia】捕获照片 [Lesson 3 - 直接操控相机]

在这一节课,我们会讨论如何通过使用framework的APIs来直接控制相机的硬件。直接控制设备的相机,相比起拍照与录像来说,要复杂一些。然而,如果你想要创建一个专业的特殊的相机程序,这节课会演示这部...

【Android Training - Performance】提高显示布局文件的性能[Lesson 1 - 优化布局层级]

Optimizing Layout Hierarchies [优化Layout层级] 【Layout是Android程序影响用户体验最关键的一部分。如果布局文件不好会使得程序比较卡。SDK里面包含...

Android官方开发文档Training系列课程中文版:电池续航时间优化之监测电池电量及充电状态

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/index.html 引言 作为一款优秀的APP应用,应该想...

【Android Training - Performance】提高显示布局文件的性能[Lesson 2 - 使用include标签重用Layout]

Re-using Layouts with 尽管Android提供了很多种小的组件可以重用,我们还需要自定义一些稍微复杂一点的小组件进行重用。我们可以使用 and 标签来对当前的layout嵌入一...

【Android Training - Connectivity】优化下载的效率[Lesson 4 - 根据网络类型更改下载模式]

Modifying your Download Patterns Based on the Connectivity Type [根据连接的网络类型来更改下载模式] 并不是所有的网络类型(Wi-...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Android Training - Performance】优化电池续航能力[Lesson 4 - 按需操控Broadcast Receivers是否开启]
举报原因:
原因补充:

(最多只允许输入30个字)