How to restart a killed service automatically?

2019-01-25 12:08发布

When a service has been killed, how to restart it automatically?

sometimes without even calling onDestroy()

3条回答
We Are One
2楼-- · 2019-01-25 12:50

If you have your service killed, the system will try to restart it later. Read more.

查看更多
Lonely孤独者°
3楼-- · 2019-01-25 12:56

Overrides the onStartCommand() and give START_STICKY or START_REDELIVER_INTENT (depends on your needs) as the return value. The system will then make sure to restart your service until you explicitly stop the service.

http://developer.android.com/reference/android/app/Service.html#START_REDELIVER_INTENT

http://developer.android.com/reference/android/app/Service.html#START_STICKY

查看更多
老娘就宠你
4楼-- · 2019-01-25 13:05

I inherited an IntentService, so I had to be gentle. It worked for me when I overrode onStartCommand() but

public int onStartCommand(Intent intent, int flags, int startId) {
   super.onStartCommand(intent, flags, startId);
   return START_STICKY;
}

That is, let the parent do what it should and return START_STICKY.

查看更多
登录 后发表回答