Jestem trochę zdezorientowany odnośnie korzystania z IntentService.Android Jak kolejkować wiele intencji na IntentService
- Dokumentacja mówi, że IntentService kolejkuje wszystkie wysłane do niej intencje i przetwarza je pojedynczo.
- wziąłem spojrzenie na code of IntentService i widziałem, że onStartCommand() odbiera intencje, nazywa onStart() który wysyła go jako wiadomość do zamiary kolejce
Jestem pewien, że przeczytaj gdzie indziej w dokumentacji, że onStartCommand() jest wywoływany przez system tylko raz, jeśli wydasz dwa razy startService(), drugie wywołanie nie spowoduje wywołania onStartCommand().
Może się mylę, ponieważ szukałem tego dokumentu i nie mogę go znaleźć.
Jest to sprzeczne z poprzednią koncepcją, która mówi, że można kolejkować wiele intencji w IntentService za pomocą metody onStartCommand().
Potrzebuję pomocy tutaj, w jaki sposób mogę kolejkować wiele intencji na IntentService?
widzę tylko dwie opcje:
Wystarczy zadzwonić każdym StartService() z różnymi zamiarami
połączeń bezpośrednio onStart() lub onStartCommand() (pomijając startService())
Zgodnie z kodem IntentService (patrz link w moim pytaniu) zobaczysz, że nie można wywołać bezpośrednio naHandleIntent(), tylko komunikat może to zrobić Handler. System musi wywołać funkcję onStart() lub onStartCommand(). – ilomambo
Tak, to prawda. Wszystko, co musisz zrobić, to wywołać 'startService()' i zaimplementować 'onHandleIntent()' wewnątrz usługi. System robi wszystko inne dla Ciebie, w tym decydowanie, jak i kiedy faktycznie uruchomić usługę. –
Sidenote: Czy to oznacza, że mogę przechwycić kolejność zamiarów przez nadpisanie * onStart() *? (Wiem, że to brzmi źle, ponieważ * onStart() * został wycofany jako API, ale w zasadzie?) – ilomambo