【问题标题】:Query MediaStore.Audio.Media using Android Architecture components?使用 Android 架构组件查询 MediaStore.Audio.Media?
【发布时间】:2017-12-28 12:34:39
【问题描述】:

我一直在研究 Android 架构组件 LiveData、Room 和 ViewModel (MVVM)。它为我们省去了使用加载器和监控数据库表上数据的麻烦。但我试图找出我们是否可以使用 LiveData 和这种架构来查询 Medistore.Audio.Media 和其他通过 ContentProviders 提供的此类 Uri。

【问题讨论】:

  • 你找到解决办法了吗?

标签: android mvvm android-contentprovider android-room


【解决方案1】:

Room 使用 SQLite,而不是其他数据源,例如 ContentProvider

应该没有什么能阻止您创建使用后台线程的ProviderLiveDataContentResolver,甚至是ContentObserver,以检索和更新从ContentProvider 检索到的一些数据。同样,ViewModel 可以包含 CursorProviderLiveData

【讨论】:

  • AAC 完全忽略所有其他遗留系统(如内容提供商)的事实一直是我的主要痛苦。通常没有简单的迁移途径。您在这里提到了某种混合 LiveData,它应该已经是 AAC 的一部分。
  • 您能否详细说明一下?如果我们应该在不再需要光标时将其关闭,我们如何将光标保留在实时数据中?
  • @Chapz:当您通过LiveData 获得新的Cursor 时,请关闭旧的,我猜。我不需要实现这样的东西,所以我没有所有的细节。
猜你喜欢
  • 1970-01-01
  • 2017-11-13
  • 2019-10-24
  • 1970-01-01
  • 2012-12-06
  • 2018-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多