参考项目
用了定时任务和双进程守护来保活。
双服务可能要难点,先看定时任务保活。
定时任务保活
继承JobService ,官方介绍
https://developer.android.com/reference/android/app/job/JobService?hl=en
是JobScheduler的回调函数,onStartJob就是job执行的回调入口。
配置定时任务并启动, 有意思是setPersisited(true)允许任务在设备重启启动。但是因为没有前台service所以出现崩溃。
判断LocalForegroundService、RemoteForegroundService的服务状态。
双服务保活
LocalForegroudService
启动服务时注册通知栏。
绑定到另一个服务。具体作用可以看看官方文档。
断开服务绑定时,重新其服务。
值得注意,当我们实现了onStartCommand 回调方法时,就只能显式停止服务,否则会一直运行。
当然这里是故意的。
RemoteForegroundService
代码几乎和LocalForegroudService 类似不重复分析。
0 条评论