Actualmente, estoy usando AsyncTask para manejar la conexión Http y recuperar datos como formato JSON.
Cargar todos los datos es trivial pero consume demasiado tiempo, así que decidí cambiar para cargar 10 elementos a la vez usando LIMIT OFFSET
(mysql).
Siguiente Configuré el evento onScroll
para mi vista de lista para crear un nuevo AsyncTask
cada vez que el usuario se desplaza. Sin embargo, por lo que leí, AsyncTask
se almacena en un grupo de subprocesos que está limitado a 5 subprocesos a la vez, por lo que no estoy seguro de que este sea un enfoque correcto. Soy un novato en la aplicación cliente/servidor, así que ¿podría alguien darme un consejo sobre este tema? Cualquier artículo relacionado, la documentación sería muy apreciada.¿Cómo se actualiza ListView en el desplazamiento mientras se recuperan los datos del servidor en Android?
Respuesta
Aquí están algunos enlaces útiles para ello,
Android: Implementing progressbar and "loading..." for Endless List like Android Market
Endless Listview with current Async Task
http://www.androidguys.com/2009/10/21/tutorial-autogrowing-listview/
http://mylifewithandroid.blogspot.com/2010/03/progressively-loading-listviews.html
En sencillos pasos,
Como usuario se desplaza - detectar el final de la lista
extender
1) Mostrar un progreso notificación
2) Solicitar la actualización
3) Recibir actualización (asíncrona) y lista
Si está utilizando un ListView
, creo que puedo suponer con seguridad que debe estar utilizando algún tipo de ListAdapter
. En lugar de iniciar un nuevo AsyncTask
en el evento onScroll
, debe mantener solo un AsyncTask
para recuperar los datos del servidor, agregar esos datos al conjunto de datos ListAdapter
y luego llamar al notifyDatasetChanged
en el ListAdapter
.
El ListAdapter
y ListView
se encargarán del resto.
Un enfoque típico sería, p. Ej. para cargar 25 inicialmente y luego tener un pie de página en la lista que muestra, p. el recuento actual y el recuento total y al presionar carga otros 25 y así sucesivamente. Eso sería un tipo de carga paginada.
Cuando lo haga, debe mantener la posición actual y notificar al adaptador que la lista ha cambiado.
- 1. cómo detectar Android ListView ¿Se detuvo el desplazamiento?
- 2. ¿Cómo se actualiza la aplicación web en el servidor?
- 3. ¿Cómo prevenir las entradas duplicadas mientras se actualiza?
- 4. NSTextView no se actualiza correctamente en el desplazamiento
- 5. ListView cambio de datos del adaptador sin ListView se notifica
- 6. Android Custom ArrayAdapter no se actualiza después del filtro
- 7. WPF: ¿Cómo permito permitir el desplazamiento con la rueda del mouse en un ListView mientras arrastro elementos ListView?
- 8. ¿Cómo se almacenan los datos en el servidor SQL?
- 9. Actualización de la base de datos sqlite cuando la base de datos del servidor se actualiza
- 10. Listview no se actualiza completamente en databind() después de la devolución de datos
- 11. Meteor: ¿se actualiza automáticamente el lienzo con los datos suscritos?
- 12. requestLocationUpdates no se actualiza en el intervalo en Android
- 13. Desplazamiento horizontal ¿Vista interior del elemento ListView?
- 14. Desplazamiento mientras se arrastra y suelta (WPF)
- 15. ¿Cómo resuelvo Múltiples artefactos del módulo X se recuperan en el mismo archivo en Apache Ivy?
- 16. RMagick advertencia mientras se ejecuta el servidor
- 17. Android lista de búsqueda mientras se escribe
- 18. Controlador de vista de modelo: ¿El controlador o el modelo recuperan datos del servidor?
- 19. BaseAdapter.notifyDatasetChanged() no actualiza el ListView
- 20. ¿Cómo se prueba una función mediante la cual se recuperan datos por urllib2?
- 21. Android: ¿Cómo evitar que el encabezado se desplace en listview, Android?
- 22. Problema del teclado mientras se enfoca en el texto de edición inferior en Android
- 23. Pasa por las bases de datos en el servidor y actualiza los datos
- 24. ¿Cómo se puede reordenar manualmente un ListView en Android?
- 25. Mejorando suavidad de desplazamiento en un ListView de Android
- 26. Android: ¿EditText pierde contenido en desplazamiento en ListView?
- 27. La barra de desplazamiento no se actualiza al cambiar el valor de desplazamiento
- 28. ¿Cómo se usa AsyncTask para mostrar un ProgressDialog mientras se trabaja en segundo plano en Android?
- 29. Cómo mantener los atributos de desplazamiento mientras se desactiva, haga clic en
- 30. Reemplazo del archivo sqlite Core Data mientras se ejecuta la aplicación, los datos no se actualizan
Lista maravillosa! Muchas gracias. – Cathy
siempre bienvenido mi amigo !! –