我想RealmObject从它"分离"一个Realm,这意味着我希望能够RealmObject从一个方法返回一个并且能够在我close的Realm实例之后使用它.
像这样的东西:
public Person getPersonWithId(final Context context, final String personId){
Realm realm = Realm.getInstance(context);
Person person = realm.where.....;
realm.close();
return person;
}
Run Code Online (Sandbox Code Playgroud)
目前getPersonWithId(mContext, personId).getName()将按预期返回错误.
拥有一个托管对象也意味着该对象是不可变的(无法修改),因此任何更新对象的方法person.setName(String name)都会因为该对象是一个托管对象而失败.
我希望会有像这样的方法 Person person = person.detachFromRealm();
有谁知道这个问题的解决方案/解决方法?
Sem*_*yon 28
Android领域现在支持附加和分离领域对象.所以你可以这样做:
RealmObject objectCopy = realm.copyFromRealm(RealmObject object);
Run Code Online (Sandbox Code Playgroud)
以下是文档中的详细信息:
Realm对象的实例可以是托管实例,也可以是非托管实例.
托管对象在Realm中持久存在,始终是最新的并且线程受限.它们通常比非托管版本更轻量级,因为它们在Java堆上占用的空间更少.
非托管对象就像普通的Java对象一样,它们不会被持久化,也不会自动更新.它们可以跨线程自由移动.
可以使用Realm.copyToRealm()和Realm.copyFromRealm()在两种状态之间进行转换
| 归档时间: |
|
| 查看次数: |
5123 次 |
| 最近记录: |