Jestem trochę zdezorientowany na temat intentService. Dokumenty mówią, że jeśli wyślesz intentService wiele zadań (intencji), to wykonasz je jeden po drugim w jednym osobnym wątku. Moje pytanie brzmi - czy możliwe jest posiadanie wielu wątków intentService w tym samym czasie, czy nie? Jak odróżnić kod od utworzenia trzech różnych intencji na tej samej intentService (ten sam wątek) lub trzech oddzielnych intentServices, z których każda ma swój własny wątek i jedną intencję do wykonania?Android: wiele intentservices lub jedna intentservice z wieloma intencjami?
Innymi słowy, gdy wykonujesz polecenie startService (intent), czy umieszczasz intencję w pojedynczej kolejce, czy też za każdym razem uruchamia nową kolejkę?
Intent someIntent1 = new Intent(this, myIntentService.class);
Intent someIntent2 = new Intent(this, myIntentService.class);
Intent someIntent3 = new Intent(this, myIntentService.class);
startService(someIntent1);
startService(someIntent2);
startService(someIntent3);
Jeśli używam różnych intentservices takich jak: Intent someIntent1 = new Intent (this, myIntentService1.class); Intent someIntent2 = new Intent (this, myIntentService2.class); Intent someIntent3 = new Intent (this, myIntentService3.class); StartService (someIntent1); StartService (someIntent2); StartService (someIntent3); czy nadal działają w tym samym handlerThread? – Jon
Tak, wszystkie żądania uruchomienia usługi rozpoczną się od funkcji HANDLEIntent() w kolejności wywołania funkcji startService dla każdego obiektu zamiaru. Tak więc, w zasadzie ustawiasz w kolejce trzy "zadania" dla usługi Intent, aby działały w kolejce. Gdy onHandleIntent() zakończy działanie/lub zostanie zablokowany przez bieżącą operację, zostanie trafiony przez kolejną prośbę startService (Intent intent), którą ustawiłeś w kolejce. Gdy wszystkie zadania "startService" zostaną zakończone, usługa intencji się wyłączy, ponieważ to leżący u jej podstaw Handler nie ma już komunikatów do "obsługi". – Submersed
@pskink to naprawdę pytanie, ponieważ jeśli trzy usługi tworzą trzy wątki, to naprawdę nie ma sposobu na "stawianie w kolejce" zadań na tym samym handlerThread, a jeśli tak, to nie rozumiem co rozumieją autorzy dev kiedy mówią o tym w kolejce. – Jon