sql >> Database >  >> RDS >> SQLite

Activiteitsgegevens bijwerken van service wanneer deze is onderbroken

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.



  1. Erlang en het gebruik van Heap Memory

  2. IntentService bevriest de gebruikersinterface van mijn toepassing

  3. Hoe de locatie van gegevensbestanden en logbestanden in SQL Server te vinden

  4. Compressie inschakelen op een bestaande tabel in SQL Server (T-SQL)