2016-06-15 6 views
2

Json DataをRetrofitからSQLiteデータベースに(ContentProvider経由で)どのように送るのだろうか?Json RetrofitからSQLiteデータベースへ

Retrofitの前に、私はリクエストを行い、Jsonを取得してIntentServiceのContentProviderに送信しました。したがって、サーバーへの呼び出しとデータベースへの呼び出しは、ワーカースレッドで実行されます。

しかし、Retrofit 2の使用を開始しました。私のJsonを得た;私はどのようにデータベースに書き込むのだろうか? 私はPOJOをシリアライズし、Intentを使用してIntentServiceに送信し、onHandleIntent(Intent)でDBへの書き込みを行います。

しかし、私はこれが正しい方法で、別の標準的な方法がないのだろうかと思いますか?

私は検索しましたが、何も話しませんでした。

おかげ

答えて

2

SyncAdapterは、この問題を解決するためのかなり標準的な方法です。これは、サーバーとローカルデータベース間のデータ転送をカプセル化します。警告として、かなりのセットアップが必要です。

SyncAdapterを書きたくない場合は、提案されている方法が問題なく動作します。 IntentServiceで改造コールを行うことをお勧めします。この方法で、あなたはあなたの意図のすべてのjsonを分別する必要はありません。たとえば:

// In IntentService 
@Override public void onHandleIntent(Intent intent) { 
    MyModel data = getRetrofitCall().execute() 
    // convert data to ContentValues 
    getContentResolver().bulkInsert(contentValues) 
} 

次に、あなたの活動に、またはどこでもあなたがちょうどIntentServiceを起動し、同期をトリガーする必要があります。

関連する問題