马上面试了,今天把腾讯这里写的拉活方案都试一遍。
以前一直不太清楚Service到底有什么用,这次终于明白了,Service可以独立于Activity进行运行,从而不容易被用户感知,在后台运行。
进程分为:前台进程/可见进程/服务进程/后台进程/空进程,优先级递减
https://segmentfault.com/a/1190000006251859
这里写真好,我来逐个试试。
1. 提升Activity权限
方案设计思想:监控手机锁屏解锁事件,在屏幕锁屏时启动1个像素的 Activity,在用户解锁时将 Activity 销毁掉。注意该 Activity 需设计成用户无感知。
通过该方案,可以使进程的优先级在屏幕锁屏时间由4提升为最高优先级1。
方案适用范围:
-
适用场景:本方案主要解决第三方应用及系统管理工具在检测到锁屏事件后一段时间(一般为5分钟以内)内会杀死后台进程,已达到省电的目的问题。
-
适用版本:适用于所有的 Android 版本。
方案具体实现:首先定义 Activity,并设置 Activity 的大小为1像素,防止RencentTask中显示,控制透明。
我的理解:实际就是伪装成Activity的Service,利用Activity可见性来提升权限。
3.Service的START_STICKY这个实现最简单了,而且合理合法。