关于Doze 模式下对AlarmManager 的影响

引言:

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**不过此方法呢就是耗电!!**没错耗电**!

总结

 没有完美的解决方案拉。。。。。扯。。
ps:感觉此篇文章对你有所帮助,帮忙给我赞助一杯咖啡!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值