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:
-
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) .
-
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.