Android Doze模式适配实验记录

网友投稿 714 2022-05-29

课题:想定时执行一些代码,如每隔4分钟向服务器发送一个数据包。

Android Doze模式适配实验记录

实验1:用TimerTask.

机型:vivo android 9.0  V1911A vivoZ5X

经常休眠,有时候长几小时。

实验2:

机型:vivo android 9.0  V1911A vivoZ5X

自从Android6.0引入低功耗与待机模式之后,TimerTask就更不能胜任了,根据官方文档,要用.setExactAndAllowWhileIdle函数才能启动在Doze模式下正常运行,不过这个函数也会被推迟,比如通常是5分钟执行一次,6分钟执行1次,甚至9分钟,官方文档也提到了9分钟,进入Android源码阅读该函数的注释,说是在DOZE模式下,有可能还会推迟定时任务到15分钟。官方文档也提到了电池白名单,因此我将APP加入这个白名单测试,setExactAndAllowWhileIdle在国内厂商的执行情况还是不能准确执行,但是比之前已经强多了,至少不会出现几小时都不执行的情况。目前是一打开屏幕,立即会执行挂起的setExactAndAllowWhileIdle的定时任务。

非DOZE模式,则会正常4分钟后执行定时任务。这里解释一下,setExactAndAllowWhileIdle本身只执行1次,是我写了一些代码,在执行任务的时候,又调用1次setExactAndAllowWhileIdle,然 后这个执行任务就变成了 循环定时执行了,实现了Ti mer的循环定时执行功能。

在网上搜了很多,都遇到了setExactAndAllowWhil

Android

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[跟着官方文档学Junit5][一][Overview][学习笔记]
下一篇:ul li 自定义图标 和 图标大小
相关文章