【发布时间】:2011-01-12 07:10:39
【问题描述】:
服务被杀死后,如何自动重启?
有时甚至不打电话给onDestroy()
【问题讨论】:
-
如果您的服务被终止,那是因为用户终止了它或操作系统内存不足。这意味着您可能不应该重新启动它。你不应该留下这样长期运行的服务
-
感谢回复,但是有一些服务,当我杀死它们时,它们很快就会重新启动。
服务被杀死后,如何自动重启?
有时甚至不打电话给onDestroy()
【问题讨论】:
我继承了一个 IntentService,所以我必须温柔一点。 当我覆盖 onStartCommand() 时它对我有用,但是
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
也就是说,让父母做它应该做的事情并返回 START_STICKY。
【讨论】:
覆盖onStartCommand() 并将START_STICKY 或START_REDELIVER_INTENT(取决于您的需要)作为返回值。然后系统将确保重新启动您的服务,直到您明确停止该服务。
http://developer.android.com/reference/android/app/Service.html#START_REDELIVER_INTENT
http://developer.android.com/reference/android/app/Service.html#START_STICKY
【讨论】:
如果您的服务被终止,系统将稍后尝试重新启动它。 阅读more。
【讨论】: