SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Android - zaktualizuj bazę danych sqlite klienta za pomocą GCM

Serwer GCM nie jest odpowiedzialny za aktualizację Twojej bazy danych, możesz go użyć tylko do intymności swojej aplikacji, tak! jest coś nowego na moim serwerze do aktualizacji, połączmy się i pobierzmy nowe dane. Oszczędza to dużo baterii urządzenia, które marnowałbyś na łączenie serwera w określonym czasie wewnętrznym w celu sprawdzenia dostępności aktualizacji.

Możesz określić parę klucz-wartość wiadomości json, którą wysyłasz do swojej aplikacji z GCM, np.
{"status" :"newupdate"}

a w onMessage() GCMReceiver możesz pobrać wiadomość za pomocą klawisza „status” od intencji i napisać logikę, taką jak

if(message.equalsIgnoreCase("newupdate"){

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

}

Przejdź do tego samouczka, jeśli jesteś nowym użytkownikiem bazy danych Sqlitehttp://www.vogella.com/articles/AndroidSQLite/article.html

Aby zaktualizować bazę danych, biorąc pod uwagę, że już zaimplementowałeś klasę 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);

Zgodnie z Twoją edycją pozwól mi dodać kilka punktów:

  1. Synchronizacja oznacza utrzymywanie obu danych bez zmian. Aby to osiągnąć, musisz stworzyć serwis internetowy, który będzie pobierał dane z Twojej bazy danych (dodaj znacznik czasu dla każdego wprowadzonego do bazy danych i wyślij go wraz z danymi, które wysyłasz do urządzenia) .

  2. Podczas synchronizacji danych pobierz maksymalną wartość znacznika czasu z bazy danych sqlite urządzenia i wyślij jako parametr podczas nawiązywania połączenia z usługą sieciową z urządzenia oraz wyślij dane w odpowiedzi z serwera, które są dodawane lub aktualizowane po tym konkretnym znaczniku czasu odebranym w żądaniu .

Więc nawet jeśli użytkownik usunął Twoją aplikację, nie dostaniesz żadnego znacznika czasu żądania, więc wyślij całe dane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Problem z Androidem SQLite - tabela ... nie ma kolumny o nazwie

  2. Wyświetlanie danych w RecyclerView

  3. 3 sposoby na wyodrębnienie wartości z dokumentu JSON w SQLite

  4. Integracja SQLCipher z greenDAO

  5. Wstawianie aktualnej daty i czasu w bazie danych SQLite