从三个层面入手:
A:提供进程优先级,降低进程被杀死的概率
方法一:监控手机锁屏解锁事件,在屏幕锁屏时启动1个像素的 Activity,在用户解锁时将 Activity 销毁掉。
方法二:启动前台service。
方法三:提升service优先级:在AndroidManifest.xml文件中对于intent-filter可以通过
android:priority = "1000"//这个属性设置最高优先级,1000是最高值,如果数字越小则优先级越低,同时适用于广播。
B:在进程被杀死后,进行拉活。
方法一:注册高频率广播接收器,唤起进程。
如网络变化,解锁屏幕,开机等
方法二:双进程相互唤起。
方法三:依靠系统唤起。
方法四:onDestroy方法里重启service:service +broadcast 方式,就是当service走ondestory的时候,发送一个自定义的广播,当收到广播的时候,重新启动service;
C. 依靠第三方根据终端不同。
在小米手机(包括 MIUI)接入小米推送、华为手机接入华为推送;
其他手机可以考虑接入腾讯信鸽或极光推送与小米推送做 A/B Test。
参考博客:Android 进程保活招式大全
Activity、Application以及BroadcastReceiver生命周期
http://www.jianshu.com/p/fcac1a8437ba