Може ли типът връщане на метода onPostExecute в AsyncTask да не е невалиден?

Разработвам приложение за Android, което изисква използването на AsyncTask за мрежова връзка. Изпълних метода doInBackground и предадох върнатата стойност на метода onPostExecute. Искам да върна някаква стойност от метода onPostExecute обратно към функцията, от която е извикан (знам, че onPostExecute се изпълнява в основната нишка). Това възможно ли е? Дали типът връщане на onPostExecute трябва да е невалиден?? Ако не, какво предлагате?

Благодаря предварително Maneesh


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