tutorial studio publishprogress oncancelled cancel asynctask android android-asynctask

studio - kill asynctask android



Si se mata una actividad, ¿vive AsyncTask? (6)

Asynctask no está limitado a ningún método de Actividad o Servicio de ciclo de vida.

Se sigue ejecutando en un subproceso independiente hasta que onPostExecute () se ejecuta en el subproceso principal.

Creo que conozco la respuesta a esta pregunta, pero ¿continúa una AsyncTask en vivo una vez que finish() actividad de llamada?

protected void onPreExecute() { Toast.makeText(getApplicationContext(), "Your data is processing.", Toast.LENGTH_LONG); finish(); }

Edición: hasta ahora dos respuestas diferentes :)


He experimentado algunas rarezas con las tareas asíncronas en las que si el sistema operativo anula una actividad y cuando se reanuda la aplicación, las tareas asíncronas a veces no se ejecutan en absoluto. No estoy seguro de por qué entran en este estado. Si ejecuta sus AsyncTasks en su propio hilo ejecutor, esto no sucederá. Podría estar corriendo en alguna circunstancia extraña. Pensé que podría ser útil publicar aquí de todos modos :).


La AsyncTask está vinculada a un subproceso de la interfaz de usuario y, si la actividad finaliza, la tarea asíncrona se cancela.

[actualización] - El comentario de Hackbod a continuación es correcto. Cabe señalar que las tareas asíncronas están destinadas a ser de corta duración y, como tal, no preocuparse tanto por este problema. Una AsycTask solo desaparece realmente cuando se completa O el proceso se cancela, lo que puede o no suceder después de que se llame el final.


La tarea asíncrona se sigue ejecutando hasta que onPostExecute () haya finalizado.

inténtelo poniendo un brindis en finish () y onPostExecute () para ver qué brindis se muestra primero.


Las tareas asíncronas no tienen efecto en el ciclo de vida de la actividad ni en ningún cambio de configuración. Siguen ejecutándose hasta que se haya llamado al método onPostExecute ().

Uno debería usar Servicios para operaciones de larga ejecución.


Se sigue ejecutando hasta que finaliza el onPostExecute .