AsyncTask, como su nombre lo indica, se ejecuta de forma asíncrona con hilo de interfaz de usuario, se llamará al método onPostExecute en algún momento en el futuro, cuando doInBackground finalizó. No nos importa cuándo se llamará al método onPostExecute (en realidad no hay forma de saber cuándo se construye el proyecto), lo único que nos importa es que el método subyacente se garantice que el framework subyacente llamará adecuadamente en algún momento en el futuro. Por lo tanto, el propósito del método onPostExecute es procesar el resultado devuelto desde el hilo del trabajador, esta es la razón por la cual el único argumento del método onPostExecute es el resultado devuelto por el método doInBackground.
Tengo alguna operación en esa actividad particular que requiere el valor devuelto por el método onPostExecute. ¿Cómo puedo solucionar esto?
Por causa, puede crear algunas variables de instancia (o usar el patrón listerner) en la clase de actividad almacenar el resultado cuando se devuelve y listo en el método onPostExecute. El problema es que nunca se sabe cuando este resultado está listo fuera del método PostExecute en el momento de compilación del proyecto, ya que en realidad se determina en el tiempo de ejecución de la aplicación. A menos que escriba algún mecanismo de espera continuamente sondeando el resultado, lo que resultará en el beneficio de AsyncTask, por ejemplo, la API integrada AsyncTask.get() que hace que AsyncTask se ejecute de forma síncrona con el subproceso UI y devuelva el resultado a la Actividad.
La mejor práctica es cambiar el diseño y mover el código de operación que requiere el resultado devuelto por AsyncTask en el método onPostExecute. espero que esto ayude.
ver http://stackoverflow.com/questions/5457493/asynctask-return-value y http://stackoverflow.com/questions/5457493/asynctask-return-value – ngesh
[Ver esta respuesta] (http: // stackoverflow.com/questions/7618614/return-data-from-asynctask-class/7618705#7618705) –