【问题标题】:Intent Service, Content Provider and Loader意图服务、内容提供者和加载器
【发布时间】:2015-07-19 08:07:59
【问题描述】:

在开发 android 应用程序时,我使用 Loaders 通过内容提供程序从本地 SQLite DB 异步检索数据并更新视图。

当我必须从 Internet 检索数据(即 JSON)时,我会使用意图服务。下载完成后,会触发广播接收器,并通过 Content Provider 将收集到的数据存储在本地 SQLite Db 中。

有什么方法可以在数据库更新后触发加载器执行?第一次从 Internet 下载数据时,我在更新 DB 后更新了广播接收器中的 UI,但通过加载器执行此操作也会更加连贯。

更新

请注意,我希望得到基于 Android 标准类的答案(不是来自第 3 方的库)

【问题讨论】:

    标签: android sqlite android-intent


    【解决方案1】:

    有没有办法在数据库更新后触发加载器执行?

    可以,只需实现ContentProvider中的通知机制即可。基本上:

    • query(),在返回Cursor之前调用Cursor.setNotificationUri()

    • insert()delete()update(),用ContentResolver.notifyChange()通知uri的变化

    另请参阅other answer of mine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-11
      • 2019-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      相关资源
      最近更新 更多