【发布时间】:2016-05-11 12:16:52
【问题描述】:
在我的应用程序中,我有一个方法可以接受 ID 的 ArrayList 并返回属于这些 ID 的机器的 RealmList。
public RealmList<Machine> getMachinesById(ArrayList<Long> machineIds) {
RealmList<Machine> machines = new RealmList<Machine>();
for (int i = 0; i < machineIds.size(); i++){
Machine m = getMachineById(machineIds.get(i));
if (m != null) {
machines.add(m);
}
}
return machines;
}
getMachineById() 函数只是为特定 id 找到正确的机器。
我想进一步过滤此输出,但是,当我尝试通过执行.where() 获取RealmQuery 时,我收到一个异常,告诉我应该将这个RealmList 置于“托管模式”。
Caused by: io.realm.exceptions.RealmException: This method is only available in managed mode
at io.realm.RealmList.where(RealmList.java:425)
我知道我收到此错误是因为此列表是独立的,不受 Realm 管理。
补充一点可能很重要,这个函数会被调用很多次,因为每次我的应用程序中的某些列表刷新时都会触发它。这意味着(如果可能的话)每次我创建一个新的托管 RealmList。
我的问题:
- 有没有办法让这个 RealmList 由 Realm 管理?
- 如果可能的话,是否经常调用此函数有问题
- 是否有任何其他(首选)方式来实现这一点(ID 列表 > RealmResults/RealmQuery)
【问题讨论】:
标签: java realm realm-list