sql >> Databáze >  >> RDS >> SQLite

Android - aktualizujte klientskou databázi sqlite pomocí GCM

Server GCM není odpovědný za aktualizaci vaší databáze, můžete jej použít pouze k intimnímu spojení vaší aplikace, jo! na mém serveru je něco nového k aktualizaci, pojďme se připojit a stáhnout nová data. Šetří to spoustu baterie zařízení, kterou byste plýtvali při sdružování vašeho serveru po určitou definovanou interní dobu pro kontrolu dostupnosti aktualizace.

Můžete zadat pár klíč–hodnota pro zprávu json, kterou odesíláte do své aplikace z GCM, například
{"status" :"newupdate"}

a v onMessage() GCMReceiver můžete získat zprávu pomocí klíče "stav" z intentu a napsat logiku jako

if(message.equalsIgnoreCase("newupdate"){

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

}

Pokud jste pro Sqlite Database noví, přejděte na tento tutoriál http://www.vogella.com/articles/AndroidSQLite/article.html

Chcete-li aktualizovat databázi, protože jste již implementovali třídu 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);

Podle vaší úpravy mi dovolte přidat několik bodů:

  1. Synchronizace znamená udržovat obě data stejná, A abyste toho dosáhli, musíte vytvořit webovou službu, která bude načítat data z vaší databáze (přidat časové razítko pro každé údaje vložené do databáze a odeslat je spolu s daty, která odesíláte do zařízení) .

  2. Při synchronizaci dat načtěte maximální hodnotu časového razítka z databáze sqlite zařízení a odešlete jako parametr při přístupu na webovou službu ze zařízení a odešlete data jako odpověď ze serveru, která jsou přidána nebo aktualizována po obdržení konkrétní časové značky v požadavku. .

Takže i když uživatel vaši aplikaci smaže, v časovém razítku žádosti nezískáte nic, takže odešlete celá data.



  1. Jak zajistit, aby moje databáze postgresql používala třídění bez rozlišení velkých a malých písmen?

  2. Proč dostanu výjimku OutOfRange ve funkci GetOrdinal tohoto pole CLOB?

  3. Problémy s transakční replikací serveru SQL

  4. Chyba syntaxe na konci vstupu v PostgreSQL