原生系统在内存充足的情况下,用户执行熄屏的操作不会立即 kill app,但是国产厂商的第三方 ROM会,推测是修改了 ROM在熄屏时执行了内存清理工作,不论此时手机内存是否充足都执行清理。对于没有加入到厂家 ROM清理白名单中的 app,不可避免的被 kill。当然有的人会不同意,说像 QQ、微信之类的就没有在熄屏后被杀,用户也没有手动将其加入系统白名单中。这种情况是 QQ和微信已经加入到系统的白名单中了,当然不需要用户手动添加了。不过这已经不是技术人员可以解决的了,需要双方的商务洽谈了。
本文介绍一种1像素Activity保活进程的实现(以前老版本的淘宝就有用)。 其整个逻辑就是在手机息屏后时,我们启动一个1像素的Activity,这样人为的制造了一个对系统的欺骗,即熄屏时系统的前台界面是我的 app。
废话完毕,上代码。
首先在MainActivity中注册一个监听手机屏幕状态的广播监听:
//注册监听屏幕