我创建了一个在onStartCommand上返回START_STICKY的服务。但是,过了一段时间后,我注意到我的应用程序已被操作系统杀死。
我是否可以使用任何方法/代码来阻止应用程序被操作系统杀死?我知道这可能不属于最佳做法。 或者我们可以使用其他方法,例如反复检查应用程序是否正在运行,如果不是,则启动应用程序?
非常感谢您对此的见解。
干杯
答案 0 :(得分:1)
您无法阻止您的进程被杀死。如果OS决定杀死你的进程,你将被杀死。期。
START_STICKY
不会做任何其他答案错误告诉的魔术,docs about that value say:
如果此服务的进程在启动时被终止(之后) 从onStartCommand(Intent,int,int)返回,然后将其留在 开始状态,但不保留这个交付的意图。后来的系统 将尝试重新创建服务。因为它处于启动状态, 它将保证在之后调用onStartCommand(Intent,int,int) 创建新的服务实例;如果没有任何未决的开始 要传递给服务的命令,将使用null调用它 意图对象,所以你必须注意检查这个。
答案 1 :(得分:0)
停止服务被android杀死的最好方法是创建持久通知。这将使Android不惜一切代价保持服务的活着,因为它显示了一些可见的东西。