原文参见此处

根据需要操作广播接收器

监控设备状态变化的最简单方法就是,为您监控的每种状态创建 BroadcastReceiver 并在应用清单中逐一进行注册。然后,您只需根据当前设备状态在每个接收器中重新安排重复提醒即可。

此方法的负面影响在于,只要系统触发了这些接收器中的任何一个,相关应用就会唤醒设备,其频率可能会远远超过所需的水平。

更好的方法是在运行时停用或启用广播接收器。这样的话,您就可以将自己在清单中声明的接收器用作被动提醒,只有在需要时才会由系统事件触发。

切换和层叠状态变化接收器以提高效率


您可以使用 PackageManager 切换清单中定义的任意组件的启用状态(包括您要启用或停用的任意广播接收器),具体如以下片段所示:

ComponentName receiver = new ComponentName(context, myReceiver.class);PackageManager pm = context.getPackageManager();pm.setComponentEnabledSetting(receiver,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP)

在使用此技巧时,如果您确定连接已断开,就可以停用除连接变化接收器外的所有接收器。相反,成功连接后,您就可以停止侦听连接变化,同时只需在执行更新和重新安排重复更新提醒前查看是否在线即可。

您可以使用同样的方法来延迟需要较高带宽的下载任务。只有在连接 Wi-Fi 后,您才能直接启用用于侦听连接变化和启动下载任务的广播接收器。

Android 优化电池使用时间——根据需要操作广播接收器相关推荐

  1. Android 优化电池使用时间 ——监控电池电量和充电状态

    时常看Android官网开发文档,最近突然发现Android官网提供了一些中文翻译文档,真心感觉不错.考虑很大一部分童鞋都生活在大中华局域网里,不能畅游世界,特转载相关系列文档,以供大家一起学习,原文 ...

  2. Android 优化电池使用时间——确定和检测网络状态

    原文参见 此处 确定和监控网络连接状态 重复提醒和后台服务最常见的用途之一,就是为来自互联网资源的应用数据.缓存数据安排定期更新或执行长时间运行的下载任务.但是,如果您没有连接互联网,或因连接过慢而无 ...

  3. Android 优化电池使用时间——确定和监控基座对接状态和类型

    原文参见此处 确定和监控基座对接状态和类型 Android 设备支持几种不同类型的基座.这些类型包括车载或家用基座以及数字和模拟基座.许多基座可用于为插入的设备充电,因此基座状态通常与充电状态紧密相关 ...

  4. Android官方开发文档Training系列课程中文版:电池续航时间优化之按需开启广播接收器

    原文地址:http://android.xsoftlab.net/training/monitoring-device-state/manifest-receivers.html 监测设备状态变化最简 ...

  5. Android学习笔记 88. Broadcast receivers 广播接收器

    Android学习笔记 Android 开发者基础知识 (Java) -- Google Developers 培训团队 文章目录 Android学习笔记 Android 开发者基础知识 (Java) ...

  6. android 接收来电广播,android中未接来电的广播接收器

    Joe.. 11 您需要使用ContentObserver public class MissedCallsContentObserver extends ContentObserver { publ ...

  7. android registerreceiver传参数,Android应用程序注册广播接收器(registerReceiver)的过程分析...

    前面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/发布机制,因此,使用这种消息驱动模型的第一步便是订阅消息:而对Android应用程序来说,订阅消息其实就是注册广播接收器,本文 ...

  8. Android应用程序注册广播接收器 registerReceiver 的过程分析

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 前面我们 ...

  9. Android 第十九课 大喇叭--广播机制----动态注册监听网络变化与静态注册实现开机启动

    为了便于进行 系统级别的消息通知,Android引入了一套广播消息机制. 1.广播机制简介: 因为Android中的每个应用程序都可以对自己感兴趣的广播尽心注册,这样程序只会接收自己所关心的广播内容, ...

最新文章

  1. vue 插件 滑块验证_VUE接入腾讯验证码功能(滑块验证)备忘
  2. 怎么彻底删除oracle
  3. Thinking in java第一章对象导论
  4. Android之判断手机黑屏以及锁屏
  5. python邮件发送哪个好_python发邮件(一)
  6. curl 请求日志_HTTP入门(一):在Bash中curl查看请求与响应
  7. Hadoop 生态系列之 HDFS
  8. MySQL中Slave_IO_Running: Connecting问题
  9. PHPExcel用法有感
  10. 为什么现在人有100万,还没有以前手头有10万块钱时敢消费?
  11. MentoHUST讲解教程(锐捷破解)
  12. 虚短虚断以及部分运放电路
  13. 小程序UI框架推荐:Vant让你优雅的飞
  14. CPU瞬间飙升170%问题复盘
  15. DOM解析,DOM4j
  16. Vue报错------did you register the component correctly? For recursive components, make sure to provide
  17. 让超级高铁黯然失色,概念机Antipode一小时内可达全球各地
  18. 论文查重字数和重复率有什么关系吗?
  19. 电脑在线一键安装win10系统教程分享
  20. zabbix template pg_monz for PostgreSQL

热门文章

  1. mysql sql优化与调优机制详解_MySQL之SQL优化详解(一)
  2. python字符串常用方法_字符串常用方法
  3. 【小白学习keras教程】九、keras 使用GPU和Callbacks模型保存
  4. 六十三、Vue中非父子(兄弟)组件间传值,插槽的使用和作用域插槽(非常重要)
  5. 百万大数据架构师学习笔记
  6. ECCV 2020 Spotlight | 多标签长尾识别前沿进展
  7. 【天池赛事】零基础入门语义分割-地表建筑物识别 Task2:数据扩增方法
  8. Idea使用技巧总结(未完待续)
  9. MyBatis Plus——分页插件【PaginationInnerInterceptor】
  10. Linux——Linux C语言编程基础知识