sql >> Database >  >> RDS >> SQLite

Android - update de sqlite-database van de klant met GCM

De GCM-server is niet verantwoordelijk voor het bijwerken van uw database, u kunt het alleen gebruiken om uw app dat te laten weten, yo! er is iets nieuws op mijn server om bij te werken, laten we verbinding maken en nieuwe gegevens downloaden. Het bespaart veel apparaatbatterij die u zou verspillen door uw server op een bepaalde tijd intern te poolen om de beschikbaarheid van updates te controleren.

U kunt een sleutelwaarde opgeven voor het json-bericht dat u vanuit GCM naar uw app verzendt, zoals
{"status" :"newupdate"}

en in onMessage() van GCMReceiver kun je het bericht krijgen met de toets "status" van intentie en logica schrijven zoals

if(message.equalsIgnoreCase("newupdate"){

 //Call a service and download the data and store/update in your databse 

}

Ga voor deze tutorial als je nieuw bent voor Sqlite Databasehttp://www.vogella.com/articles/AndroidSQLite/article.html

Om de database bij te werken, aangezien u de OpenHelper-klasse al hebt geïmplementeerd

 MyOpenHelper myOpenHelper= new MyOpenHelper(this)
 sqltitedatabaseObject=myOpenHelper.getWritableDatabase();
 ContentValues values = new ContentValues();
 values.put(<your_column_name>,<value>);

// For Updating the Existing Entry
long rowAffected=sqltitedatabaseObject.updateWithOnConflict(<Table_Name>,
            values,<Selection_For_Update>,<Selection_Paramans_In_String_Array>,
            0);
// For Inserting a New Row
        long rowsInserted=sqltitedatabaseObject.insert(<Table_Name>, null, values);

Volgens uw bewerking wil ik enkele punten toevoegen:

  1. Synchroniseren betekent dat beide gegevens hetzelfde blijven. En om dit te bereiken, moet u een webservice maken die de gegevens uit uw database haalt (voeg een tijdstempel toe voor elke gegevens die in de database is ingevoegd en verzend deze samen met de gegevens die u naar het apparaat verzendt) .

  2. Tijdens het synchroniseren van gegevens de maximale waarde van de tijdstempel ophalen uit de sqlite-database van het apparaat en verzenden als een parameter terwijl u de webservice van het apparaat raakt, en gegevens verzenden als reactie van de server die worden toegevoegd of bijgewerkt na die specifieke tijdstempel die op verzoek is ontvangen .

Dus zelfs als de gebruiker je app heeft verwijderd, ontvang je niets in het verzoek om een ​​tijdstempel, dus stuur hele gegevens.



  1. Hoe de uitvoer van DBMS_OUTPUT.PUT_LINE omleiden naar een bestand?

  2. Willekeurige sortering van SQL Server

  3. Hoe de datumnotatie in de Oracle-database te wijzigen

  4. Hoe PL SQL-code in Oracle te verpakken?