参考资料:
gitbub上的一个进程保活的库
安卓进程保活解决方案
Android进程保活招式大全
双进程守护APP保活方案
最近查看进程保活的各种资料,实现方式无非就那么几种,可以参考上面的资料链接,本篇博文对这些实现进行了分析和测试,并把从中体会到的知识点做个总结汇总,算是加深相关知识的理解。 本篇博文以github的一个库为例,来逐步讲解说明
该库总的来说就是整合了:一像素Activity,前台Servcie,Service设置START_STICKY,播放无声音乐Servcie,双进程守护Service,JobServcie的多种手段来确保保活的成功率。 1像素Activity该方案适用场景: 本方案主要解决第三方应用及系统管理工具在检测到锁屏事件后一段时间内会杀死后台进程.适用于android所有版本。1像素Activity的特点: 需要设置该activity的style设置透明,在手机锁屏时start;在屏幕解锁时finish,主要作用就是在App退到后台之后且锁屏的时候启动一个看不见的Activity,造成一个该App没有回退到后台的假象,降低被杀的几率,伪代码如下: - protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //设定一像素的activity
- Window window = getWindow();
- window.setGravity(Gravity.START | Gravity.TOP);
- WindowManager.LayoutParams params = window.getAttributes();
- params.x = 0;
- params.y = 0;
- params.height = 1;
- params.width = 1;
- window.setAttributes(params);
- }
复制代码https://blog.csdn.net/dodod2012/article/details/98755479
|