В идеале, вы не касаетесь действия в пределах doInBackground()
от AsyncTask
. Причина: изменения конфигурации (например, повороты экрана). Операция может быть заменена, пока поток продолжает пыхтеть, и поэтому вы можете закончить чтение из неправильной активности.
Если вы будете следовать рецепту, который я обрисовал в этом ответе вон там , и вы синхронизируете доступ к Activity
, удерживаемому AsyncTask
, вы получите как можно больше результатов. Конечно, вам также придется иметь дело с безопасностью потоков того, что вы читаете («например, поля членов подкласса Activity»), так как они могут быть или не быть уже потокобезопасными.