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

从三个层面入手:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 让app 的service常驻其实是很流氓的做法,但是需求摆在那里。。。 但是要清除一点:想百分百保活servic...
    PengPengPro阅读 16,262评论 10 65
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,909评论 25 708
  • 为了面试,为了高工资,废话不多说,不定期更新。 1. Activity正常和异常情况下的生命周期分析。 Activ...
    24K男阅读 845评论 0 0
  • 作者:腾讯——张兴华目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 And...
    yoosir阅读 1,008评论 0 4
  • 谜痴 男儿谢了秀发, 傻不傻, 依旧朝也它来暮也它。 美娇娘, 费思量, 眉儿皱, 不觉容颜已老人已瘦。
    成都独行侠阅读 189评论 3 1