我想添加和使用领域,像这样领域数据未更新的Android使用copyToRealmOrUpdate方法
RealmController realmController = RealmController.with(this).getInstance();
FirstTime firstTime = new FirstTime();
firstTime.setFirstTime(1);
realmController.addFirstTime(firstTime);
Timber.d("firs time %s",realmController.getFirstTime().getFirstTime());
FirstTime firstTime1 = new FirstTime();
firstTime1.setFirstTime(2);
realmController.addFirstTime(firstTime1);
Timber.d("firs time updated %s",realmController.getFirstTime().getFirstTime());
realmController不为空和realmcontroller.addFirstTime()方法是这样的
检索数据public void addFirstTime(FirstTime firstTime){
Timber.d("adding first time %s",firstTime.getFirstTime());
realm.beginTransaction();
realm.copyToRealmOrUpdate(firstTime);
realm.commitTransaction();
}
而且我FirstTime类是这样
public class FirstTime extends RealmObject{
//0 = firstime; 1 = not firstime
@PrimaryKey
int firstTime;
public int getFirstTime() {
return firstTime;
}
public void setFirstTime(int firstTime) {
this.firstTime = firstTime;
}
}
的getFirstTime()在RealController是这样
public FirstTime getFirstTime() {
return realm.where(FirstTime.class).findFirst();
}
所以在第一代码部分,第一木材是给1,这是好的,但在第二木材即
Timber.d("firs time updated %s",realmController.getFirstTime().getFirstTime());
应该给我的更新值是2,但它给了我1,旧值。
你正在使用什么版本的Realm?这个'RealmController'看起来与使用0.82.1的Ravi Tamada教程非常相似,并且显示了不好的做法。 – EpicPandaForce
...此外,您没有更新数据库中的数据,您正在插入一个新值。 – EpicPandaForce
是的,它来自Ravi Tamada的教程,并没有copyToRealmOrUpdate更新数据库? – theanilpaudel