Implementé un servicio de cola en Android que cambiará los estados en función de los eventos de conectividad de colas y wifi/datos.Carga de datos en caché eficazmente en Android
Pongo en cola transacciones que se publicarán en una URL remota. Si el dispositivo tiene una conexión de datos o wifi, repetirá la cola y publicará los datos en la url hasta que la cola esté vacía o haya un evento de desconexión.
Puedo iniciar sesión en mi aplicación, activar el modo avión, generar datos, desactivar el modo avión y publicar la transacción. Sin ralentizar, incluso con miles de transacciones. (Estaba tratando de pellizcarlo un poco)
Enter: baja recepción! Mi aplicación se ralentiza enormemente cuando la recepción 3G es baja. (Sí, toda la carga se produce fuera del hilo de la interfaz de usuario.) Parece que la causa de esta desaceleración tiene que ver con la publicación en el servidor que tarda mucho tiempo en suceder y, a veces, en fallar.
Mi pregunta es, ¿cómo puedo solucionar esto? Verifica la calidad de la señal? ¿Encuestar una dirección conocida? ¿Cómo lo solucionan otras aplicaciones, como Gmail? ¡Este debe ser un escenario común!
Sin duda necesita tener un plan para casos como "la conectividad está ahí, pero el servidor es lento, inalcanzable etC" Dos ideas: 1. persista en la caché, defina un tamaño máximo con el que usted está bien (es decir: cuando es completo no te importa si los eventos son desechados). 2. Mida el tiempo que toma una solicitud. Si el tiempo es mayor que el tiempo que lleva generar eventos, pause por más tiempo para tomar carga de la conexión o el servidor. – vasquez