SQLite
 sql >> база данни >  >> RDS >> SQLite

Android - актуализирайте клиентска база данни sqlite с помощта на GCM

Сървърът на GCM не носи отговорност да актуализира вашата база данни, можете да я използвате само за да напомните на приложението си, че, йо! има нещо ново на моя сървър за актуализиране, нека се свържем и изтеглим нови данни. Това спестява много батерия на устройството, която бихте загубили, за да обединявате сървъра си за определено вътрешно време за проверка на наличността на актуализация.

Можете да посочите ключ-стойност за json съобщение, което изпращате към приложението си от GCM като
{"status" :"newupdate"}

и в onMessage() на GCMReceiver можете да получите съобщението по ключ "status" от намерение и да напишете логика като

if(message.equalsIgnoreCase("newupdate"){

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

}

Отидете на този урок, ако сте нов за Sqlite Databasehttp://www.vogella.com/articles/AndroidSQLite/article.html

За да актуализирате базата данни, като се има предвид, че вече сте внедрили клас 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);

Съгласно вашата редакция позволете ми да добавя няколко точки:

  1. Синхронизирането означава запазване на двете данни еднакви и за да постигнете това, трябва да създадете уеб услуга, която ще извлича данните от вашата база данни (добавете времева марка за всяка вмъкната в базата данни и я изпратите заедно с данните, които изпращате до устройството) .

  2. Докато синхронизирате данните, извличайте максималната стойност на времеви печат от базата данни на устройството sqlite и изпращайте като параметър, докато удряте уеб услугата от устройството, и изпращайте данни в отговор от сървъра, които се добавят или актуализират след това конкретно времеви печат, получен в заявката .

Така че дори ако потребителят е изтрил приложението ви, няма да получите нищо в времевата марка на заявката, за да изпратите цели данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite JSON_GROUP_ARRAY()

  2. Кога трябва да затворя DatabaseHelper?

  3. SQLite Group By

  4. Възможно ли е да се мигрира от Realm към Sqlite?

  5. Проблем с Android SQLite - таблица ... няма именувана колона