对于仍在寻找答案的任何人 - 这个可能是正确的:
您不能:使服务无法终止,如果在内存不足的情况下运行,系统将始终终止您的服务。但
你可以:告诉系统在服务被杀死时重新启动你的服务。看这段代码:
公共静态最终 int START_REDELIVER_INTENT
在 API 级别 5 中添加
返回的常量onStartCommand(Intent, int, int)
:
如果该服务的进程在启动时被杀死(从 中返回后onStartCommand(Intent, int, int))
,它将被安排重新启动,并且最后交付的 Intent 再次通过 重新交付给它onStartCommand(Intent, int, int)
。此 Intent 将保持重新交付的计划,直到服务调用stopSelf(int)
start ID 提供给onStartCommand(Intent, int, int)
. 服务将不会收到onStartCommand(Intent, int, int)
带有 null Intent 的调用,因为只有在未完成处理发送给它的所有 Intent 时才会重新启动它(并且任何此类挂起的事件都将在重新启动时传递)。
常数值: 3 (0x00000003)