Что вернуть в onStartCommand для службы

Я просматривал документацию, а иногда onStartCommand() возвращает START_NOT_STICKY, иногда он возвращает следующее:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    // TODO Auto-generated method stub
    return super.onStartCommand(intent, flags, startId);
}

Теперь я запутался, почему некоторые службы возвращают super.onStartCommand(intent, flags, startId);

Ответ 1

Все зависит от того, чего вы хотите. В документации говорится:

Для обратной совместимости реализация по умолчанию вызывает onStart (Intent, int) и возвращает START_STICKY или START_STICKY_COMPATIBILITY.

Таким образом, возврат super.onStartCommand() эквивалентен возврату START_STICKY. Если вы не хотите поведения по умолчанию, вы можете вернуть другую константу.

Ответ 2

Наиболее часто используемые

  • Service.START_STICKY
  • Service.START_NOT_STICKY и
  • Service.START_REDELIVER_INTENT

Service.START_STICKY будет перезапущен, если система Android завершит работу по любой причине. Service.START_NOT_STICKY будет работать до тех пор, пока не будут выполнены ожидающие работы. Service.START_REDELIVER_INTENT аналогичен Service.START_STICKY, но исходное намерение повторно доставляется в метод onStartCommand.

Ответ 3

 Service.START_STICKY
>> the system restarts the service with everything refresh not using the previous intent. 
Service.START_NOT_STICKY 
>> the system does not restarts the service.
Service.START_REDELIVER_INTENT
>>the system restarts the service with using the previous intent.'enter code here