【问题标题】:Huge amount data + Objectbox + RecyclerView adapter海量数据 + Objectbox + RecyclerView 适配器
【发布时间】:2018-04-05 08:52:24
【问题描述】:

Android 新手。 我在 Objectbox 数据库中存储了 100,000 个项目。

在显示 RecyclerView 之前,我必须每次都更新数据集(因为添加、删除项目)。所以我打电话给myRecyclerViewAdapter. setDataset(myObjectBox.getAll())。

所以在显示 UI 之前,查询需要一点时间,UI 会滞后。之后,UI就可以正常工作了。

是否有任何变通方法可以加快查询速度?

【问题讨论】:

  • 使用延迟加载 (io.objectbox.query.LazyList<E>)
  • 谢谢@pskink,但我不知道如何使用 LazyList。你能给我一个小代码示例吗?
  • 已经这样做了,但我不明白这一点。对部分加载、缓存等感到困惑。带有 RecyclerView 实现的代码示例很有帮助。

标签: android database android-recyclerview objectbox


【解决方案1】:

您不应该在主线程上查询大量数据。检查reactive queries。

小例子:

Query<Task> query = taskBox.query().build();
query.subscribe(subscriptions)
     .on(AndroidScheduler.mainThread())
     .observer(data -> updateUi(data));

请阅读full docs。

【讨论】:

  • 很高兴收到马库斯先生的来信。我会在代码中尝试,但如果你在 github 或其他地方放置一个带有 RecyclerView 的示例实现,我会很高兴。对像我这样的新手很有帮助。
  • 一个问题:每当我删除一个项目时,我都会打电话给notifyItemRemoved()。但是添加项目时没有拨打任何电话。但是代码仍然可以正常工作。如何?需要打电话notifyDataSetChanged()吗?
  • 每个人都绝对应该尝试 Objectbox... 它令人兴奋!
  • 观察者在更新时自动触发。它记录在我在答案中提供的链接中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
相关资源
最近更新 更多