Android, как передать данные из асинхронной задачи, вызванной из основной активности, во вторичную активность? - PullRequest
0 голосов
/ 11 июля 2011

Мое приложение имеет основное действие «A» и дополнительное, «B» (вызывается нажатием кнопки).Непосредственно перед началом действия B из операции AI запустите асинхронную задачу, чтобы получить данные XML из удаленного веб-сервиса.Как мне затем передать данные XML в действие B?Я не могу использовать что-то вроде

intent.putExtra("xmlData", xmlData);

, поскольку при запуске намерения xmlData пуст, но ...

Или я использую неправильный подход?Я решил запустить асинхронную задачу из действия A, а не из B, поскольку полагаю, что смогу сэкономить некоторое время на ожидании удаленных данных в действии B ...

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

Отправьте URL-адрес или уникальные данные, такие как id, если URL-адрес совпадает, в Activity B из A через intent.putExtra () и извлекайте данные с помощью AsyncTask, когда вы создаете действие B.ProgressDialog в onPreExecute также может быть на месте.

Затем вы можете повторно использовать действие B, если есть какая-либо аналогичная задача, например, извлечение, анализ и представление.

0 голосов
/ 11 июля 2011

Создать намерение и запустить его в startActivity внутри onPostExecute () после завершения AsyncTask.

Кроме того, xmlData является строкой?Это нормально, если так, иначе вам нужно реализовать Parcelable.Кроме того, вы должны быть осторожны с вашими идентификаторами.Опечатка или неверный регистр в идентификаторе, который вы передаете putExtra, могут привести к тому, что вы его не найдете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...