如何保证Service不被杀死Android进程不死

2017-06-21  本文已影响0人  嚣张鱼

从三个层面入手:

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

上一篇下一篇

猜你喜欢

热点阅读