Json从Retrofit到SQLite数据库
问题描述:
想知道如何将Json数据从Retrofit发送到SQLite数据库(通过ContentProvider)?Json从Retrofit到SQLite数据库
在改造之前,我曾经做过我的请求,获取Json并将它发送到IntentService中的ContentProvider。所以调用服务器然后写入数据库是在工作线程中完成的。
但现在开始使用Retrofit 2;得到了我的Json;我想知道如何将它写入数据库? 我会序列化POJO,使用Intent将其发送到IntentService,然后在onHandleIntent(Intent)中写入数据库。
但我想知道如果这是正确的方式,如果没有另一种标准的方式?
我已经四处搜寻,但没有谈到它。
感谢
答
的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。