搭建邮箱系统的意义与方法解析,提升效率与安全性
744
2022-05-29
课题:想定时执行一些代码,如每隔4分钟向服务器发送一个数据包。
实验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小时内删除侵权内容。