需要实现一个定时处理任务的功能,你会如何处理?
这功能很简单不是吗,没错就是Foregound Service + Timer,啪啪啪,一顿乱敲功能实现了。然后开测试,
也很顺利,不管是真机,还是模拟器,只要在设备不休眠的情况下,都很顺利完成测试。一旦设备休眠,噩梦
也随之开始。
于是开始google防止设备休眠的方法,像什么WakeLock、电池白名单、后台运行白名单一一上了一遍,结
果呢。比较好的结果只能在部分设备休眠后还能正常运行,并不能真正解决。
继续探索,直到有一天想到AlarmManager。于是便有了今天这事,记录并分享AlarmManager实现定时执行
任务功能。
代码很少,也很简单,就没必要去可以分析。
需要注意三点:
* 省电模式会影响后台运行
* app加入电池优化白名单
* app加入系统厂商白名单
不能说此方法一定能适配所有手机:
目前通过系统有:magic3.0.1|emui 10.0.1|miui 11 9.9.27
资源有限,其他暂时未进行测试
-
Notifications
You must be signed in to change notification settings - Fork 0
Wzhixiang/TimerInService
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
定时任务,采用AlarmManager+Service实现定时执行任务功能,Foreground Service+Timer也可以实现,只是容易被设备厂商拦截,所以才采用AlarmManager
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published