从服务器获取数据并将其保存到本地数据库的最佳方法?

Best approach to get data from server and save it to in local DB?

我正在从服务器下载数据并将其存储在本地 sqlite 中 db.i 想知道执行此操作的最佳方法,这样我的应用程序 ui 线程就不会冻结。 目前我正在使用 volley,应用程序有时会冻结,我也会收到日志 "skip frames"。谢谢。

在 Volley 中,onResponse 和 onErrorResponse 在 UI 线程上被调用。因此,请将解析逻辑移至 parseNetworkResponse(因为这是在后台线程中完成的),或者您可以使用 Executors(或 ExecutorServices,具体取决于您的用例)或 AsyncTask 在 OnResponse 中收到响应后切换线程并将数据保存在如下所示的本地数据库。

public void onResponse(JSONObject response) {
     Executor executor = Executors.newSingleThreadExecutor();
     executor.execute(() -> 
        // your database code 
     );       
}

public void onResponse(JSONObject response) {
     AsyncTask.execute(new Runnable() {
        public void run() {
           // your database code 
       }
    });      
}