JobPlus知识库 IT 软件开发 文章
android保活进程总结--双进程保活策略

进程的保活,在很多资讯类的App和即时通讯App的用处很大,奈何谷歌的推送服务在国内是被阉割了!据说是在8.0(奥利奥)相关政府机构已经将开放这项功能提上了日程,嗯,没错8.0,预计再过三五年就可以像苹果那样自由自在的推送了!但是一点不鸡冻,不知道我这秃头的码农还能不能挨到,哈哈!

先看看效果图:

这张图片的主要操作是杀死后台所有的应用进程,之后在状态栏上面弹出被拉起来的程!

测试机参数:

service:是一个后台服务,专门用来处理常驻后台的工作的组件。

一、优先级

进程的重要性优先级:(越往后的就越容易被系统杀死) 
1.前台进程;Foreground process 
1)用户正在交互的Activity(onResume()) 
2)当某个Service绑定正在交互的Activity。 
3)被主动调用为前台Service(startForeground()) 
4)组件正在执行生命周期的回调(onCreate()/onStart()/onDestroy()) 
5)BroadcastReceiver 正在执行onReceive();

2.可见进程;Visible process 
1)我们的Activity处在onPause()(没有进入onStop()) 
2)绑定到前台Activity的Service。

3.服务进程;Service process 
简单的startService()启动。 
4.后台进程;Background process 
对用户没有直接影响的进程—-Activity出于onStop()的时候。 
android:process=”:xxx” 
5.空进程; Empty process 
不含有任何的活动的组件。(android设计的,为了第二次启动更快,采取的一个权衡)

好了,基础知识回顾的差不多了!进入正题吧!

事先声明哈!其实是没有真正的进程的保活的,在手动杀死后台的时候,运行在系统后台的所有进程都是一一被杀死的,注意的是,一个一个被杀死的,所以我们才利用这个特性来做的!额。。中心思想即是,在应用被打开的时候,启动两个后台服务,这两个后台服务是相互依存的,也就是说,当一个进程被干掉的时候,另一个存活的进程就立马将其拉起唤醒,也就是打一个时间差!

嗯,上代码!

远程服务代码:


本地服务代码:



JobService保证在息屏后,CPU进入休眠状态时进行唤醒



AIDL定义

我们再在MainActivity中进行调用:

OK,所有代码基本在这了!哈哈!有问题的话留言交流!

每天进步一点点,时间会让你成为巨人!


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
283人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序