sql >> Databasteknik >  >> RDS >> SQLite

Uppdatera aktivitetsdata från tjänsten när den är pausad

Det svåra men korrekta sättet att göra detta är att bygga din egen anpassade ContentProvider för din app och uppdatera all data som tas emot från webbtjänster och push-meddelanden till denna ContentProvider . När Activity kommer tillbaka i förgrunden, uppdaterar den sig själv med den nya data som tillhandahålls av ContentProvider .

Det är svårt för att skapa en anpassad ContentProvider är mycket arbete. Det är rätt sätt eftersom det är i överensstämmelse med beteendet hos mobilapplikationer och med Android-arkitekturen:säg att en användare aktiverar en webbtjänst eller någon beräkningskrävande uppgift och sedan avvisar appen; eller säg att ett pushmeddelande kommer och kräver att appens data uppdateras och visas. I båda fallen appens Activity s kanske inte längre är i förgrunden, utan en Service kan användas för att utföra vissa icke-UI-operationer. Nu i slutet av den operationen, Service gör ändringar i data via ContentProvider , och när användaren aktiverar appen igen visas Activity s får sina nya data från ContentProvider .

För att citera den officiella handledningen:

Innehållsleverantörer är standardgränssnittet som kopplar samman data i en process med kod som körs i en annan process.

Som utvecklare bör du alltid utgå från att användaren kan anropa en app när som helst och avvisa den när som helst. Oavsett om en Activity är i förgrunden eller inte, appens data måste uppdateras och underhållas korrekt.

Googles egna appar använder anpassad ContentProvider s. Gmail app använder i synnerhet sin ContentProvider för att få nya e-postmeddelanden när nätverksanslutning är tillgänglig och visa e-postmeddelanden offline. Facebook , WhatsApp &Twitter Android-appar använder också ContentProvider s.



  1. Hur ansluter jag till MySQL på Amazon EC2 från Windows?

  2. SELECT / GROUP BY - tidssegment (10 sekunder, 30 sekunder, etc)

  3. Hur man importerar och exporterar en MySQL-databas

  4. Ändra materialiserad vyfråga