1

我想将 Volley 集成到我的项目中。但是将数据保存到sqlite数据库存在问题。可以在活动中执行保存操作(我从 Web 服务获得响应)还是在这里使用加载器模式更好?谢谢

4

1 回答 1

1

从线程的角度来看,您可能不想在 Android 的主 UI 线程上将更改写入数据库,最好在单独的线程中进行。我相信 Volley 的结果总是在主 UI 线程上返回(有关详细信息,请参阅 Volley 中的 ResponseDeliveryRunnable 类)。

这意味着您可能希望使用 Executor 或以下代码跳出 Response.Listener 中的主 UI 线程:

AsyncTask.execute(new Runnable() {
  public void run() {
    // database insert here 
  }
});

这真的取决于您的应用程序的结构,您是否有 DAO 层和域对象,或者您是否使用直接 SQL 语句将来自 Web 服务的数据直接插入到您的数据库中?就我个人而言,我使用 greenDAO ORM,它为我提供了域对象和 DAO,并且只需确保在使用数据库进行插入/删除/更新时,我总是不在 Android 主 UI 线程中。

于 2013-06-21T07:18:35.517 回答