Server GCM tidak bertanggung jawab untuk memperbarui database Anda, Anda dapat menggunakannya hanya untuk intim aplikasi Anda itu, yo! ada sesuatu yang baru di server saya untuk diperbarui, mari sambungkan dan unduh data baru. Ini menghemat banyak baterai perangkat yang akan Anda buang dalam menyatukan server Anda pada beberapa waktu internal yang ditentukan untuk memeriksa ketersediaan pembaruan.
Anda dapat menentukan nilai kunci untuk pesan json yang Anda kirim ke aplikasi Anda dari GCM seperti
{"status" :"newupdate"}
dan di onMessage() dari GCMReceiver Anda bisa mendapatkan pesan dengan kunci "status" dari maksud dan menulis logika seperti
if(message.equalsIgnoreCase("newupdate"){
//Call a service and download the data and store/update in your databse
}
Ikuti tutorial ini jika Anda baru menggunakan Sqlite Databasehttp://www.vogella.com/articles/AndroidSQLite/article.html
Untuk Memperbarui database mengingat Anda sudah mengimplementasikan kelas 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);
Sesuai Edit Anda, izinkan saya menambahkan beberapa poin :
-
Sinkronisasi berarti menjaga kedua data tetap sama, Dan untuk mencapai ini Anda harus membuat layanan web yang akan mengambil data dari database Anda (tambahkan cap waktu untuk setiap data yang dimasukkan ke dalam database dan kirimkan bersama dengan data yang Anda kirim ke perangkat) .
-
Saat menyinkronkan data, ambil nilai maksimum cap waktu dari basis data sqlite perangkat dan kirim sebagai parameter saat menekan layanan web dari perangkat, dan kirim data sebagai tanggapan dari server yang ditambahkan atau diperbarui setelah cap waktu tertentu diterima dalam permintaan .
Jadi, bahkan jika pengguna menghapus aplikasi Anda, Anda tidak akan mendapatkan apa pun dalam stempel waktu permintaan, jadi kirimkan seluruh data.