在 RealmList 中添加/更新领域对象



我有一个领域列表,比如说学生在领域对象中列出,比如说类。我想请求给定班级的学生列表,并在 studentList 中更新相同的内容。 服务器返回的学生列表可能包含新旧学生。因此,我希望我的 realmList 能够更新老学生的信息,并添加新学生(如果有的话)。

我所做的是,

  1. 启动了一个 size == serverReturnStudentList.size() 的循环
  2. 在循环中创建学生并添加到领域(使用 realm.copyToRealmOrUpdate(student))
  3. 从步骤 2 中接收到托管学生对象。
  4. 获取类 X 的学生列表,并检查学生列表是否包含该托管对象。
  5. 如果没有,将学生添加到学生列表,否则什么也没做。

它正在按预期工作,但我知道这不是正确的方法。如果我跳过"包含"检查 (@step4) 并直接将托管对象添加到 realmList,则多个条目开始显示在 realmList 中。

处理这种情况的最佳方法是什么?

另一个问题是,我在每个类下有"n"个类和"x"个部分。我正在并行发出 n.x 请求,当我尝试启动 asyncExecutions n.x 次时,我遇到了池大小限制异常(这很明显),我无法在 UI 线程上运行它,因为我的 UI 在 3-5 秒内无响应(而每个学生列表的循环正在为每个学生执行 executeTransaction)

任何帮助/建议将不胜感激。

提前谢谢。干杯!

这种方法对我来说似乎还可以。您需要了解的一件事是,用于更新 realmList 的copyToRealmOrUpdate()不会复制具有相同主键的条目的数据。

最新更新