Имам приложение, което има IntentService за осигуряване на фонова обработка - по-специално то извлича данни от мрежата и ги съхранява в база данни на Sqlite. Моите дейности използват Context.startService(), за да поискат от услугата да актуализира данните и услугата изпраща локално излъчвано съобщение, когато актуализацията приключи.
IntentService използва пул от нишки, за да свърши работата - предимно в случай, че се отвори нова дейност, преди заявката да е завършена, така че нова заявка за различен ресурс няма да блокира изчакването предишната да завърши.
Всичко работи добре, но за да предотвратя множество едновременни заявки за един и същи ресурс, зададох флаг в дейността, след като тя изпрати заявка, която спира изпращането на нови заявки, докато не получи обратно съобщение ГОТОВО от услугата.
Сега, ако IntentService е бил убит по средата на операция, той никога няма да изпрати съобщението DONE и Activity никога няма да знае, че заявката е неизпълнена, и няма да поиска повторно ресурса. Възможно ли е това? И ако се случи, има ли начин Дейността да бъде информирана?