我们都想要自己的App尽量不被系统杀死,进程存活时间越长越好,以前面试时 HR 问了我这个问题,我回答几点就记不起来了,回去后在 Google 很久,看了很多的博客,总结下来如下几点:
以下总结综合网上很多博客,但是具体来自两篇博客,他们写的都非常棒,深入学习请看文末的链接
个人总结
- 利用系统广播唤醒进程,例如:利用开机,网络切换、拍照、拍视频时候,系统产生的广播唤醒 App。
- 但是最新的Android N取消了 ACTION_NEW_PICTURE(拍照),ACTION_NEW_VIDEO(拍视频),CONNECTIVITY_ACTION(网络切换)等三种广播。
-
前台的 Service,在通知栏里面显示一个通知,例如:墨迹天气。
-
例如系统漏洞,展示无图标的通知,这个方法使用的很多。具体使用见文末博客。
-
利用第三方的软件或者 SDK(如推送) 进行拉活,例如:阿里系的应用会拉活他的其他的 App,推送 SDK 会拉活很多应用。具体说明和使用见文末博客。
-
利用 JobScheduler 机制拉活。
-
利用Native进程拉活(5.0 以上失效)
-
Android 系统的账号同步机制会定期同步账号进行,利用同步机制进行进程的拉活。(7.0以上失效)
-
最后大招也是最有效的但是也是代价最高的:进入手机厂商的白名单,像 QQ 和微信一样。
网友评论