Si se cancela una actividad, ¿funciona el AsyncTask?
Creo que sé la respuesta a esto, pero un asyncTask seguir viviendo una vez que su actividad de llamada ha sido finish()
ed?
protected void onPreExecute() { Toast.makeText(getApplicationContext(), "Your data is processing.", Toast.LENGTH_LONG); finish(); }
Editar: hasta ahora dos respuestas diferentes 🙂
- Cómo utilizar AsyncTask
- La tarea asíncrona se detuvo al finalizar la aplicación (onDestroyed se llama)
- La interfaz de usuario se actualiza cuando mi aplicación pierde el foco y recupera el foco. Tema extraño
- AsyncTask devuelve la lista a la actividad
- Número de conexiones de red en Android
- Omitió 60 cuadros! La aplicación puede estar haciendo demasiado trabajo en su hilo principal
- La creación de AsyncTask causa bloqueo
- Cómo gestionar diferentes tareas que deben ser llamadas por AsyncTask
- ¿Cuál es la forma más eficiente en Android de llamar a las llamadas de la API Web HTTP que devuelven una respuesta JSON?
- Devolver un ArrayList y String asyncTask
- Android AsyncTask - Orden de ejecución
- AsyncTask.doInBackground no se llama en 2.3, trabajando en 4.0+
- Segunda AsyncTask no se ejecuta
AsyncTask está vinculado a un subproceso de interfaz de usuario y si se termina la actividad, la tarea asíncrona se cancela.
[Update] – El comentario de Hackbod a continuación es correcto. Cabe señalar que AsyncTasks están destinados a ser de corta duración y como tal no preocuparse tanto sobre este tema. Un AsycTask es sólo realmente desaparecido cuando se completa o el proceso se mata que puede o no puede suceder después de finalizar se llama.
Sigue funcionando hasta que termine onPostExecute
.
He experimentado alguna rareza con Async Tasks donde si una actividad es asesinada por el sistema operativo y cuando la aplicación se reanuda, las AsyncTasks a veces no se ejecutan en absoluto. No estoy seguro de por qué se meten en este estado. Si ejecuta AsyncTasks en su propio subproceso de ejecutor, esto no sucede. Yo podría estar corriendo en alguna circunstancia extraña. Pensé que podría ser útil para publicar aquí de todos modos :).
La tarea asíncrona continúa ejecutándose hasta que finaliza OnPostExecute ().
Intentarlo poniendo un brindis en finish () y onPostExecute () para ver qué tostada se muestra primero.
Asynctask no están limitados a ningún método de ciclo de vida de Actividad o Servicio.
Se mantiene en ejecución en un subproceso independiente hasta que el onPostExecute () se ejecuta en el subproceso principal.
Las tareas asíncronas no tienen efecto del ciclo de vida de la actividad ni de ningún cambio de configuración. Siguen funcionando hasta que se ha llamado al método onPostExecute ().
Uno debe utilizar los servicios para las operaciones de largo funcionamiento en su lugar.
- Java.lang.NullPointerException en android.support.v7.widget.RecyclerView.onMeasure
- Android Gradle: ¿Qué es javaMaxHeapSize "4g"?