AsyncTask de Android
Podría alguien aconsejar sobre lo siguiente: Estoy tratando de ejecutar código de la página de ayuda de Android, pero no funciona para mí:
public class DownloadFilesTask extends AsyncTask<String, Integer, Long> { protected Long doInBackground(String... urls) { Log.e("TuneWiki", "Exec"); return 1l; } @Override protected void onPostExecute(Long result) { Log.e("TuneWiki", "Post"); } }
Cuando ejecuto la tarea, doInBackground se invoca bien, pero onPostExecute nunca se invoca 🙁
- OnPostExecute en AsyncTask cancelado
- Android: NoClassDefFoundError android.os.AsyncTask
- Cómo utilizar notifydatasetchanged in recyclerview gridlayout
- Android espera hasta que la tarea asíncrona haya terminado de hacer el método específico
- ¿Es seguro guardar una referencia fuerte a un Fragmento en una AsyncTask?
Probado en Milestone con 2.1 OS
- ¿Cómo se puede generar una pantalla de carga en Android?
- Android: pérdida de memoria debido a AsyncTask
- Obtener contexto en AsyncTask
- AsyncTask.onCancelled () no se llama después de cancelar (true)
- Android - manera correcta de usar AsyncTasks?
- Suspender subprocesos al ejecutar múltiples AsyncTasks en fragmentos anidados y hace que la aplicación sea lenta
- ¿Por qué no AsyncTasks siempre funcionan dentro de un onClickListener?
- Android VMD MySQL insertar y mostrar el diálogo
Gracias a todos – encontré la razón. AsyncTask deja de funcionar por alguna razón si se inició una gran cantidad de subprocesos incluso si todos los subprocesos se completaron correctamente.
No es una buena idea usar AsyncTasks para descargas de archivos (como el nombre de su AsyncTask sugiere). AsyncTasks no debe utilizarse para operaciones de larga ejecución como la creación de redes. De hecho AsyncTask tiene dos cuestiones principales que están relacionadas:
- Están mal vinculados al ciclo de vida de la actividad
- La creación de fugas de memoria con mucha facilidad.
Dentro de la aplicación RoboSpice Motivations ( disponible en Google Play ) respondemos a esta pregunta en detalle. Ofrecerá una visión en profundidad de AsyncTasks, Loaders, sus características y desventajas y también le presentará una solución alternativa para las solicitudes de red: RoboSpice.
Incluso proporcionamos una infografía para explicar este asunto. Para decirlo en pocas palabras
- AsyncTasks son defectuosos, ya que están mal vinculados a Activity Lifecycle y crear fugas de memoria
- Los cargadores son bastante buenos para lo que han sido diseñados para: acceder a los cursores de las bases de datos de Sqlite, pero no ofrecen ningún soporte para la creación de redes. Ellos son la herramienta equivocada para esto.
- RoboSpice ejecuta las solicitudes de red en un servicio, las descargas se ejecutan en un Servicio Android, la memoria está bien administrada e incluso proporciona soporte para escribir solicitudes REST.
Le animo a descargar la aplicación RoboSpice Motivations , realmente explica esto en profundidad y proporciona muestras y demostraciones de las diferentes maneras de hacer algunas operaciones de fondo.
- ¿Se puede añadir subcarpeta al diseño en el proyecto Eclipse Android?
- Cómo funciona autolink: map work