sql >> Base de Datos >  >> RDS >> SQLite

Actualice los datos de actividad del servicio cuando esté en pausa

La forma difícil pero correcta de hacerlo es crear su propio ContentProvider personalizado. para su aplicación y actualice todos los datos recibidos de los servicios web y las notificaciones push a este ContentProvider . Cuando la Activity vuelve al primer plano, se actualiza con los nuevos datos proporcionados por el ContentProvider .

Es difícil porque hacer un ContentProvider personalizado es mucho trabajo Es el correcto porque está en conformidad con el comportamiento de las aplicaciones móviles y con la arquitectura de Android:digamos que un usuario activa un servicio web o alguna tarea de computación intensiva y luego descarta la aplicación; o digamos que llega una notificación automática y requiere que los datos de la aplicación se actualicen y muestren. En ambos casos, la Activity de la aplicación Es posible que los correos electrónicos ya no estén en primer plano, sino un Service se puede usar para realizar alguna operación que no sea de interfaz de usuario. Ahora, al final de esa operación, el Service realiza cambios en los datos a través de ContentProvider , y cuando el usuario activa la aplicación nuevamente, la Activity s obtienen sus nuevos datos del ContentProvider .

Para citar el tutorial oficial:

Los proveedores de contenido son la interfaz estándar que conecta los datos de un proceso con el código que se ejecuta en otro proceso.

Como desarrollador, siempre debe asumir que el usuario puede invocar una aplicación en cualquier momento y descartarla en cualquier momento. Independientemente de si una Activity esté en primer plano o no, los datos de la aplicación deben actualizarse y mantenerse correctamente.

Las propias aplicaciones de Google usan ContentProvider personalizado s. El Gmail la aplicación en particular hace uso de su ContentProvider para recibir nuevos correos electrónicos cuando la conectividad de red esté disponible y mostrar correos electrónicos sin conexión. El Facebook , WhatsApp &Twitter Las aplicaciones de Android también utilizan ContentProvider s.