2016-06-15 75 views
2

想知道如何将Json数据从Retrofit发送到SQLite数据库(通过ContentProvider)?Json从Retrofit到SQLite数据库

在改造之前,我曾经做过我的请求,获取Json并将它发送到IntentService中的ContentProvider。所以调用服务器然后写入数据库是在工作线程中完成的。

但现在开始使用Retrofit 2;得到了我的Json;我想知道如何将它写入数据库? 我会序列化POJO,使用Intent将其发送到IntentService,然后在onHandleIntent(Intent)中写入数据库。

但我想知道如果这是正确的方式,如果没有另一种标准的方式?

我已经四处搜寻,但没有谈到它。

感谢

回答

2

SyncAdapter是解决这个问题的一个非常标准的方式。它封装了服务器和本地数据库之间的数据传输。作为警告,涉及到相当多的设置。

如果您不想编写SyncAdapter,则建议的方法可以正常工作。我可能会建议在IntentService中进行翻新调用。这样你就不必在你的Intent中打包所有的json。例如:

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

然后,在您的活动或任何需要触发同步的地方,您只需启动IntentService。