La manière difficile mais correcte de le faire est de créer votre propre ContentProvider
personnalisé pour votre application et mettre à jour toutes les données reçues des services Web et des notifications push vers ce ContentProvider
. Lorsque l'Activity
revient au premier plan, il se met à jour avec les nouvelles données fournies par le ContentProvider
.
C'est dur car créer un ContentProvider
personnalisé est beaucoup de travail. C'est le correct parce qu'il est conforme au comportement des applications mobiles et à l'architecture Android :supposons qu'un utilisateur active un service Web ou une tâche gourmande en calculs, puis ferme l'application ; ou dites qu'une notification push arrive et nécessite que les données de l'application soient mises à jour et affichées. Dans les deux cas, l'Activity
de l'application s ne peut plus être au premier plan, mais un Service
peut être utilisé pour effectuer certaines opérations non liées à l'interface utilisateur. Maintenant à la fin de cette opération, le Service
apporte des modifications aux données via le ContentProvider
, et lorsque l'utilisateur réactive l'application, l'Activity
s obtiennent leurs nouvelles données du ContentProvider
.
Pour citer le tutoriel officiel :
Les fournisseurs de contenu sont l'interface standard qui connecte les données d'un processus avec le code exécuté dans un autre processus.
En tant que développeur, vous devez toujours supposer que l'utilisateur peut invoquer une application à tout moment et la fermer à tout moment. Indépendamment du fait qu'une Activity
est au premier plan ou non, les données de l'application doivent être correctement mises à jour et maintenues.
Les propres applications de Google utilisent un ContentProvider
personnalisé s. Le Gmail
app en particulier utilise son ContentProvider
pour recevoir de nouveaux e-mails lorsque la connectivité réseau est disponible et afficher les e-mails hors ligne. Le Facebook
, WhatsApp
&Twitter
Les applications Android utilisent également ContentProvider
s.