Il modo difficile ma corretto per farlo è creare il tuo ContentProvider
personalizzato per la tua app e aggiorna tutti i dati ricevuti dai servizi web e le notifiche push a questo ContentProvider
. Quando l'Activity
torna in primo piano, si aggiorna con i nuovi dati forniti dal ContentProvider
.
È difficile perché creare un ContentProvider
personalizzato è un sacco di lavoro. È il corretto modo perché è conforme al comportamento delle applicazioni mobili e all'architettura Android:supponiamo che un utente attivi un servizio web o qualche attività ad alta intensità di calcolo, e poi chiuda l'app; o supponiamo che arrivi una notifica push e richieda l'aggiornamento e la visualizzazione dei dati dell'app. In entrambi i casi, l'Activity
dell'app s potrebbe non essere più in primo piano, ma un Service
può essere utilizzato per eseguire alcune operazioni non dell'interfaccia utente. Ora al termine di tale operazione, il Service
apporta modifiche ai dati tramite il ContentProvider
e quando l'utente attiva nuovamente l'app, l'Activity
s ottengono i loro nuovi dati da ContentProvider
.
Per citare il tutorial ufficiale:
I fornitori di contenuti sono l'interfaccia standard che collega i dati in un processo con il codice in esecuzione in un altro processo.
Come sviluppatore, dovresti sempre presumere che l'utente possa invocare un'app in qualsiasi momento e chiuderla in qualsiasi momento. Indipendentemente dal fatto che sia un'Activity
è in primo piano o meno, i dati dell'app devono essere aggiornati e mantenuti correttamente.
Le app di Google utilizzano ContentProvider
personalizzato S. Il Gmail
app in particolare utilizza il suo ContentProvider
per ricevere nuove e-mail quando la connettività di rete è disponibile e visualizzare le e-mail offline. Il Facebook
, WhatsApp
&Twitter
Le app Android utilizzano anche ContentProvider
s.