Может ли возвращаемый тип метода onPostExecute в AsyncTask быть не пустым?

Я разрабатываю приложение для Android, которое требует использования AsyncTask для подключения к сети. Я выполнил метод doInBackground и передал возвращаемое значение методу onPostExecute. Я хочу вернуть некоторое значение из метода onPostExecute обратно в функцию, из которой он вызывается (я знаю, onPostExecute выполняется в основном потоке). Это возможно? Тип возвращаемого значения onPostExecute должен быть недействительным?? Если нет, то что вы предлагаете?

Заранее спасибо Маниш


person ManJan    schedule 01.03.2012    source источник


Ответы (1)


Если вы хотите, чтобы AsyncTask возвращал значение, которое будет захвачено напрямую, вам нужен блокирующий вызов, который противоречит цели AsyncTask.

Что вам нужно сделать, так это расширить AsyncTask или обернуть его, затем создать поле, содержащее значение, которое вы хотите вернуть, и установить его из onPostExecute. Затем в коде сохраните ссылку на AsyncTask и проверьте это значение после завершения задачи.

person JRL    schedule 01.03.2012
comment
Спасибо, JRL. Но что вы подразумеваете под оберткой AsyncTask? Как вы это делаете? Можно подробно? - person ManJan; 04.04.2012