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.