Le serveur GCM n'est pas responsable de la mise à jour de votre base de données, vous pouvez l'utiliser uniquement pour intimer votre application, yo ! il y a quelque chose de nouveau sur mon serveur à mettre à jour, permet de se connecter et de télécharger de nouvelles données. Cela permet d'économiser beaucoup de batterie de périphérique que vous gaspilleriez en mettant en commun votre serveur à une heure définie en interne pour vérifier la disponibilité de la mise à jour.
Vous pouvez spécifier une valeur-clé pour le message json que vous envoyez à votre application depuis GCM, comme
{"status" :"newupdate"}
et dans onMessage() de GCMReceiver, vous pouvez obtenir le message par clé "statut" à partir de l'intention et écrire une logique comme
if(message.equalsIgnoreCase("newupdate"){
//Call a service and download the data and store/update in your databse
}
Optez pour ce tutoriel si vous êtes nouveau pour Sqlite Databasehttp://www.vogella.com/articles/AndroidSQLite/article.html
Pour mettre à jour la base de données en considérant que vous avez déjà implémenté la classe OpenHelper
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);
Conformément à votre modification, permettez-moi d'ajouter quelques points :
-
Synchroniser signifie garder les deux données identiques, et pour y parvenir, vous devez créer un service Web qui récupérera les données de votre base de données (ajoutez un horodatage pour chaque donnée insérée dans la base de données et envoyez-le avec les données que vous envoyez à l'appareil) .
-
Lors de la synchronisation des données, récupérez la valeur maximale de l'horodatage à partir de la base de données sqlite de l'appareil et envoyez-la en tant que paramètre tout en accédant au service Web à partir de l'appareil, et envoyez les données en réponse du serveur qui sont ajoutées ou mises à jour après cet horodatage particulier reçu dans la demande .
Ainsi, même si l'utilisateur a supprimé votre application, vous n'obtiendrez rien dans l'horodatage de la demande, donc envoyez des données entières.