De moeilijke maar juiste manier om dit te doen, is door uw eigen aangepaste ContentProvider
te bouwen voor uw app en update alle gegevens die zijn ontvangen van webservices en pushmeldingen naar deze ContentProvider
. Wanneer de Activity
weer op de voorgrond komt, werkt het zichzelf bij met de nieuwe gegevens geleverd door de ContentProvider
.
Het is moeilijk omdat het maken van een aangepaste ContentProvider
is veel werk. Het is de juiste manier omdat het in overeenstemming is met het gedrag van mobiele applicaties en met de Android-architectuur:stel dat een gebruiker een webservice of een rekenintensieve taak activeert en vervolgens de app sluit; of zeg dat er een pushmelding binnenkomt en vereist dat de gegevens van de app worden bijgewerkt en weergegeven. In beide gevallen is de Activity
. van de app s staat misschien niet meer op de voorgrond, maar een Service
kan worden gebruikt om een niet-UI-bewerking uit te voeren. Nu, aan het einde van die operatie, de Service
brengt wijzigingen aan in de gegevens via de ContentProvider
, en wanneer de gebruiker de app opnieuw activeert, wordt de Activity
s krijgen hun nieuwe gegevens van de ContentProvider
.
Om de officiële tutorial te citeren:
Contentproviders zijn de standaardinterface die gegevens in het ene proces verbindt met code die in een ander proces wordt uitgevoerd.
Als ontwikkelaar moet u er altijd van uitgaan dat de gebruiker een app op elk moment kan oproepen en deze op elk moment kan sluiten. Ongeacht of een Activity
op de voorgrond staat of niet, de gegevens van de app moeten correct worden bijgewerkt en onderhouden.
De eigen apps van Google gebruiken aangepaste ContentProvider
s. De Gmail
app maakt in het bijzonder gebruik van zijn ContentProvider
om nieuwe e-mails te ontvangen wanneer netwerkconnectiviteit beschikbaar is en om e-mails offline weer te geven. De Facebook
, WhatsApp
&Twitter
Android-apps maken ook gebruik van ContentProvider
v.