Что вернуть в 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