Я занимаюсь разработкой приложения со службой, которая переадресует звонки в веб-службу, и несколькими действиями, которые выполняют эти звонки.Действия должны обрабатывать результаты этих вызовов.Например, у меня есть метод writeComment в сервисе, который обращается к веб-сервису и возвращает некоторую информацию о вновь написанном комментарии.
Прямо сейчас я позволил Activity позаботиться обо всех потоках.Activity связывает службу, а затем использует AsyncTask, которая вызывает метод writeComment связанной службы.
Все работает хорошо, пока Activity не останавливается во время работы AsyncTask.Если это произойдет (это легко случается при переключении телефона), AsyncTask умирает насильственной смертью при попытке обновить пользовательский интерфейс в onPostExecute.Я не совсем уверен, как это исправить - мне do нужно сообщить пользователю, что сервер обновлен.
Если я пойду наоборот и зарегистрирую обратный вызов с помощьюСлужба, я все еще немного озадачен, потому что мне нужно уведомить Службу о том, что Деятельность изменилась - я должен сказать ей, чтобы она не уведомляла меня в onDestory первой Деятельности, и перерегистрировать во второй Активации onCreate.И мне нужно разобраться со случаем, когда асинхронная задача завершается после onDestroy и перед onCreate.
Что считается наилучшей практикой в этом случае?
Спасибо, Итай.