Json 从 Retrofit 到 SQLite 数据库

Json from Retrofit to SQLite Database

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

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

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

但我想知道这是不是正确的方法,是否有其他标准方法?

我四处寻找,但没有人谈论它。

谢谢

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

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

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

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