被杀掉的后台进程,如何才能不让系统杀掉?
1.第一种思路
每个手机都有省电模式,在这种模式下,手机锁屏后,会认为一些进程为耗电进程,从而把它杀掉。
那么解决办法,并且是让用户可知道解决办法就是,用户自己手动把该应用,在系统中设置为“省电模式下也受保护的应用”。
2.第二种思路:让服务重启
1.onStartCommand 的四种返回值。
能重启的——「
带intent意图:
不带intent意图:
根据sdk版本号觉得要不要重启的:
」
不能重启的——
2.使用场景
1.配送员端,获取是否开启订单来了提示音
2.听歌软件
3.定时器。
问题:这四种返回值如何保证系统一定能够重启?原理是什么?
1.在activitythread这个类里,使用到了onStartCommand方法返回的值。由于不能往下继续追踪,使用的地方应该是本地方法。
2.在其他android系统初始化的资料里,谈到过,init初始化大部分都是用来初始化和service相关的东西。首先是初始化service的数据结构,主要用于描述一个服务是什么样的;其次是启动的方法。
【参考资料】
3.其他和service相关的知识点
1.绑定服务,开启服务的区别?
1.生命周期不同。
比如定时器,希望开启服务的界面即使不在前台展示,依然可以让服务中的任务继续执行。
2.绑定方式的service可以使用到服务中的方法和成员变量
【参考资料】