如何实现线程保活

本文探讨了两种提高Android应用存活率的策略:一是通过提升进程优先级减少被系统杀死的可能性,包括使用前台Activity和Notification;二是应用被杀死后的拉活策略,如利用系统广播、Service和JobScheduler机制。

有两种方案:

第一种:提升优先级,降低进程被杀死的概率

     线程的优先级 (a.前台进程 b.可见进程 c.服务进程 d.后台进程 e.空进程)

1.利用Activity提升权限:监听手机锁屏事件,在屏幕锁屏的时候启动一个1像素的Activity,在用户解锁时将Activity销毁,注意要设置成透明状态.

2.利用Notification提升权限:AndroidService的优先级是4,我们可以通过setForeground接口将后台Service设置为前台Service,这样进程的优先级会变成2,进程的优先级仅仅低于用户当前正在交互的进程,与可见进程一样,进程被杀死的概率就小了.

第二种:在进程被杀死后,进行拉活

  1. 利用系统广播拉活:在发生特定系统事件时,系统会发出响应的广播,通过在 AndroidManifest 静态注册对应的广播监听器,就可以在发生响应事件的时候拉活。
  2. 利用系统Service进行拉活:将 Service 设置START_STICKY,利用系统机制在 Service 挂掉后自动拉活(有五秒延迟)。
  3. 利用JobSchedule机制拉活:Android5.0 以后系统对 Native 进程等加强了管理,Native 拉活方式失效。系统在 Android5.0 以上版本提供了 JobScheduler 接口,系统会定时调用该进程以使应用进行一些逻辑操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值