Я немного запутался в отношении использования IntentService.Android Как разместить несколько намерений в IntentService
- В документации указано, что IntentService ставит в очередь все намерения, отправленные ему, и обрабатывает их по одному за раз.
- Я посмотрел на code of IntentService, и я увидел, что onStartCommand() принимает намерение, вызывает OnStart() который отправляет его в виде сообщения намерений в очередь
Я уверен, что я прочитайте где-нибудь в документации, что onStartCommand() вызывается системой только один раз, если вы дважды выпускаете startService(), второй вызов не приведет к вызову onStartCommand().
Возможно, я ошибаюсь, потому что я искал эту документацию, и я не могу ее найти.
Это противоречит предыдущей концепции, в которой говорится, что вы можете ставить в очередь многие намерения в IntentService через onStartCommand().
Так что мне нужна помощь здесь, как мне помещать несколько намерений в IntentService?
Я вижу только два варианта:
Просто позвоните каждый StartService() с различными намерениями
вызовов непосредственно OnStart() или onStartCommand() (минуя startService())
В соответствии с кодом IntentService (см. Ссылку в моем вопросе) вы увидите, что невозможно напрямую вызвать onHandleIntent(), только обработчик сообщений может это сделать. Системе необходимо вызвать либо onStart(), либо onStartCommand(). – ilomambo
Да, это правильно. Все, что вам нужно сделать, это вызвать 'startService()' и реализовать 'onHandleIntent()' внутри службы. Система делает все остальное для вас, включая решение о том, как и когда начать сервис. –
Sidenote: Означает ли это, что я могу перехватить намерение в очереди, переопределив * onStart() *? (Я знаю, это звучит плохо, так как * onStart() * устарел как API, но в принципе?) – ilomambo