【问题标题】:Android Volley SQLite integration/combinationAndroid Volley SQLite 集成/组合
【发布时间】:2013-06-15 12:38:26
【问题描述】:

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

【问题讨论】:

    标签: android android-sqlite android-volley


    【解决方案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 线程。

    【讨论】:

    • 我正在使用 contentproviders 来处理数据库。在Activity中使用ContentResolver好还是在AsyncTask中更好?
    • 这个问题证实了我对 AsyncTask 的建议是使用 ContentProvider 的一个很好的解决方案 - stackoverflow.com/questions/8392012/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    相关资源
    最近更新 更多