Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/02/2016, 07:33
napartar
 
Fecha de Ingreso: noviembre-2008
Mensajes: 59
Antigüedad: 16 años
Puntos: 1
Respuesta: No me aclaro con AsyncTask

Buenas jlopez.

Bien, el tema de uso de la clase Void en AsyncTask se debe a tema de genéricos de java. El propio AsyncTask define tres tipos genéricos diferentes, uno para parámetros, otro para progreso y otro para resultados. El uso de Void nos permite especificar que el método no devuelve nada, pero en cambio sí que estamos obligados por el compilador a devolver algo dentro del método (normalmente null).

De esta forma AsyncTask puede mantener su estructura sin cambiar la firma (signature) de sus métodos, ya que se permite Void que sí es una clase, pero si lo quisieramos hacer con void (el cual no es una clase, si no una palabra reservada), tendríamos que tener más tipos de AsyncTask diferentes en Android, cambiando la clase padre en base a qué método quisieramos como void.

Respecto al error, creo que el problema es que el Activity termina cuando el AsyncTask está terminando de ejecutar. Recuerda que la ejecución es asíncrona, por lo tanto el Activity que ha llamado al AsyncTask puede estar terminando o no existir cuando AsyncTask ejecuta onPostExecute. Tienes que realizar por tanto una comprobación.