2015-04-01 4 views
0

Я довольно новичок в программировании на Android. У меня есть основное действие, которое получает данные из БД через обработчик сервиса (url). Я хочу также вставлять данные, но в другую деятельность, и я хочу, чтобы моя основная деятельность была актуальной при каждом ее вызове (onresume(), onrestart()). Я нашел это в справочнике Android API об AsyncTask: Задача может быть выполнена только один раз (при попытке выполнить второе выполнение будет выбрано исключение). Означает ли это, что я не могу назвать AsyncTask всякий раз, когда активность возобновляется или что я не могу одновременно запускать несколько экземпляров AsyncTask?Android AsyncTask называется «несколько раз»

+0

Вы можете создать несколько экземпляров одной и той же задачи Async и выполнить их в одно и то же время –

ответ

0

Это буквально означает, что пока работает AsyncTask, вы не сможете запустить его снова. В вашем MainActivity.class у вас есть строки:

task.execute(); 

если задача либо закончена или нет, и вы вызовите метод снова тогда exception будет выброшено.

И положить этот метод в onResume() является хорошей практикой. Только одно замечание: если вы положили onRestart(), этот обратный вызов работает при изменении конфигурации, но он не будет вызываться, если вы создадите activity.

Документ о lifecycle of an Activity.

+0

спасибо большое! это действительно помогло! – user3082880

0

Означает ли это, что я не могу вызывать AsyncTask всякий раз, когда действие возобновляется, или что я не могу одновременно запускать несколько «экземпляров» AsyncTask?

Это означает, что вы не можете вызвать метод execute дважды на одной и той же AsyncTask инстанции независимо от его завершения или нет.

+0

большое спасибо! это действительно помогло! – user3082880

Смежные вопросы