1
我使用Realm将数据存储在我的项目中。我有一个奇怪的问题。 我的模型:领域数据isValid()为false,但可以获取数据
Class Post extends RealmObject implements Serializable{
@PrimaryKey
int id;
...
RealmList<Post> subdata;
RealmList<Post> getSubdata() {
return subdata;
}
}
我平时检查getSubdata() != null && getSubdata().isValid()
使用附属数据。问题是当我检查getSubdata().isValid()
返回false
,但我仍然在subdata
中获取数据。没有检查isValid
没关系。文件说是这样的:
/**
* Checks if the {@link RealmList} is managed by Realm and contains valid data i.e., the {@link io.realm.Realm}
* instance hasn't been closed.
*
* @return {@code true} if still valid to use, {@code false} otherwise or if it's an unmanaged list.
*/
public boolean isValid() {
//noinspection SimplifiableIfStatement
if (realm == null || realm.isClosed()) {
return false;
}
return isAttached();
}
更新调试:
我不知道为什么当Realm无效时可以获取数据。但在我的应用程序,每当领域关闭,我试图从'RealmObject'获取数据,我的应用程序将抛出异常关于领域是无效 –
这就是我问这个问题的原因@PhanVanLinh –
它是托管或非托管数据?我猜测非托管 –