Может быть, вам не понравится мой ответ, но я считаю AsyncTask
неработающим (по причинам, подобным этому).
Редактировать: Мой первоначальный ответ рекомендовал использовать IntentService
и транслировать результат.Это так же неэффективно, как отправка письма себе.
Вы можете использовать AsyncTaskLoader
, который решает проблемы AsyncTask
, но API AsyncTaskLoader
далек оттакже идеально.В частности, вы должны убедиться, что идентификатор загрузчика уникален, и знать, что результаты кэшируются для идентификатора, а не для аргументов.Кроме того, распространение исключения так же прервано, как и в случае AsyncTask
.
Более современный и безопасный способ решения этой проблемы - использовать Guava future .