service在手机加密锁屏时,被系统杀掉的原因,以及处理的两种思路

被杀掉的后台进程,如何才能不让系统杀掉?

1.第一种思路

每个手机都有省电模式,在这种模式下,手机锁屏后,会认为一些进程为耗电进程,从而把它杀掉。

那么解决办法,并且是让用户可知道解决办法就是,用户自己手动把该应用,在系统中设置为“省电模式下也受保护的应用”。

2.第二种思路:让服务重启

1.onStartCommand 的四种返回值。

能重启的——「
    带intent意图:
    不带intent意图:
    根据sdk版本号觉得要不要重启的:
    」
不能重启的——

2.使用场景

1.配送员端,获取是否开启订单来了提示音
2.听歌软件
3.定时器。
问题:这四种返回值如何保证系统一定能够重启?原理是什么?

1.在activitythread这个类里,使用到了onStartCommand方法返回的值。由于不能往下继续追踪,使用的地方应该是本地方法。
2.在其他android系统初始化的资料里,谈到过,init初始化大部分都是用来初始化和service相关的东西。首先是初始化service的数据结构,主要用于描述一个服务是什么样的;其次是启动的方法。

【参考资料】

android启动需要初始化的service

避免服务被杀

保活策略

3.其他和service相关的知识点

1.绑定服务,开启服务的区别?

1.生命周期不同。

比如定时器,希望开启服务的界面即使不在前台展示,依然可以让服务中的任务继续执行。

2.绑定方式的service可以使用到服务中的方法和成员变量

【参考资料】

界面调用服务

服务四种状态场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值