私のアプリには、ID の を受け取り、これらの ID に属するマシンArrayList
の を返すメソッドがあります。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 の正しいマシンを見つけるだけです。
この出力をもう少しフィルタリングしたいのですが、実行して取得しようとすると、RealmQuery
これを「管理モード」にする.where()
必要があることを示す例外が発生します。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)