Den svære, men korrekte måde at gøre dette på, er at bygge din egen tilpassede ContentProvider
for din app og opdatere alle data modtaget fra webtjenester og push-meddelelser til denne Indholdsudbyder
. Når Aktivitet
kommer tilbage i forgrunden, opdaterer den sig selv med de nye data leveret af ContentProvider
.
Det er hårdt fordi man laver en tilpasset ContentProvider
er meget arbejde. Det er det korrekte måde, fordi det er i overensstemmelse med adfærden for mobilapplikationer og med Android-arkitekturen:lad os sige, at en bruger aktiverer en webservice eller en eller anden beregningsintensiv opgave og afviser derefter appen; eller sig, at der ankommer en push-meddelelse og kræver, at appens data opdateres og vises. I begge tilfælde appens Aktivitet
s er muligvis ikke længere i forgrunden, men en Service
kan bruges til at udføre nogle ikke-UI-handlinger. Nu i slutningen af denne operation, Service
foretager ændringer i dataene gennem ContentProvider
, og når brugeren aktiverer appen igen, vises ContentProvider
.
For at citere den officielle vejledning:
Indholdsudbydere er standardgrænsefladen, der forbinder data i én proces med kode, der kører i en anden proces.
Som udvikler bør du altid gå ud fra, at brugeren til enhver tid kan påkalde en app og afvise den til enhver tid. Uanset om en Aktivitet
er i forgrunden eller ej, skal appens data opdateres og vedligeholdes korrekt.
Googles egne apps bruger tilpasset ContentProvider
s. Gmail
app gør især brug af sin ContentProvider
for at få nye e-mails, når netværksforbindelse er tilgængelig, og vise e-mails offline. Facebook
, WhatsApp
&Twitter
Android-apps gør også brug af ContentProvider
s.