sql >> データベース >  >> RDS >> SQLite

Android-GCMを使用してクライアントのsqliteデータベースを更新します

    GCMサーバーはデータベースを更新する責任を負いません。それを使用して、アプリを親密にすることができます。サーバーに更新する新しいものがあります。接続して新しいデータをダウンロードできます。これにより、更新の可用性を確認するために内部で定義された時間にサーバーをプールする際に浪費するデバイスのバッテリーを大幅に節約できます。

    GCMからアプリに送信するjsonメッセージのキー値を
    {"status": "newupdate"}

    のように指定できます。

    GCMReceiverのonMessage()では、インテントからキー「status」でメッセージを取得し、

    のようなロジックを記述できます。
    if(message.equalsIgnoreCase("newupdate"){
    
     //Call a service and download the data and store/update in your databse 
    
    }
    

    Sqlite Databaseを初めて使用する場合は、このチュートリアルに進んでくださいhttp://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. 同期とは、両方のデータを同じに保つことを意味します。これを実現するには、データベースからデータをフェッチするWebサービスを作成する必要があります(データベースに挿入されたデータごとにタイムスタンプを追加し、デバイスに送信するデータと一緒に送信します)。 。

    2. データの同期中に、デバイスのsqliteデータベースからタイムスタンプの最大値をフェッチし、デバイスからWebサービスにアクセスするときにパラメーターとして送信し、要求で受信した特定のタイムスタンプの後に追加または更新されたデータをサーバーから送信します。

    そのため、ユーザーがアプリを削除した場合でも、リクエストのタイムスタンプには何も表示されないため、データ全体を送信してください。



    1. MySQLですべてのビューを一覧表示する4つの方法

    2. PL/SQLでの2次元配列の作成またはシミュレーション

    3. CentOS5でMySQLリレーショナルデータベースを使用する

    4. OracleのTO_TIMESTAMP_TZ()関数