findFirstAsync()返回“无效对象”,但是findFirst()或findAllAsync()可以工作

时间:2018-12-04 12:43:32

标签: android realm android-livedata

我正在尝试使用findFirstAsync创建对Realm的异步调用。

Realm.getDefaultInstance().where<MyModel>().findFirstAsync()

但是它总是导致“无效对象”(不会崩溃,但是返回的对象在false上返回isValid())。

这是一个问题,因为我想使用LiveRealmObject来检查构造函数中的isValid()

另一方面,同步findFirst()正在工作(因此查询正确),而findAllAsync()也正在正常工作(因此LiveRealmResults)。


一种解决方法(我目前正在使用)是使用findAllAsync()并使用firstOrNull()在侦听器(LiveData-Observer)中获得第一个条目。

但是,当只需要一件物品时,退回一件物品会更清洁。另外,我认为某处存在错误,因此让我们对其进行修复。

1 个答案:

答案 0 :(得分:0)

AFAIK唯一可行的方法是使用LiveRealmResults,如您所说,只需使用limit(1)

将结果限制为1