关于Doze 模式下对AlarmManager 的影响
2016-06-14 09:41
330 查看
引言:
Android6.0为了对耗电性能的大幅提升 引入了Doze模式【打盹 极省电】模式。 屏幕不操作将会自动进入 Doze模式。但有时客户需要在Doze模式下
启动一些AlarmManger 发送点广播啥的,这个时候很多 AlarmManager将直接失效。
关于Doze模式:
设备将进入休眠模式。在休眠状态下,
系统将通过以下两种方式来节省电量:
限制app访问网络 限制大量占用Cpu的Service
并且阻止APP访问网络,推迟APP的任务,同步和标准闹钟。
解决办法:
setAndAllowWhileIdle() setExactAndAllowWhileIdle().
提供了新的Api可以从Doze模式下唤醒,继续广播。但此函数也有弊端:
此函数的弊端
setAndAllowWhileIdle()和setExactAndAllowWhileIdle()存在的弊端。 只能在15分钟唤醒一次,如果你的广播需要1分钟广播很多次,也只能15分钟一次。
setAndAllowWhileIdle函数时间间隔的太长的解决方法:
真扯淡,搞个setAndAllowWhileIdle。只能15分钟唤醒一次。 答案是肯定的:有!可以采用方法:setAlarmClock() **setAlarmClock** 将不会受Doze模式。那么他的弊端呢? 所以必须在节约电量和业务之间做个取舍, 没有没有更好的方法。如果你必须要在15分钟内多次唤醒 就用**setAlarmClock**不过此方法呢就是耗电!!**没错耗电**!
总结
没有完美的解决方案拉。。。。。扯。。。[/code]
ps:感觉此篇文章对你有所帮助,帮忙给我赞助一杯咖啡!!!
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories