在我的android應用程序,我堅持一個鍛鍊對象領域。在我的活動之一,我創建了一個對象,此代碼:在領域的數據變化android
realm.beginTransaction();
Workout w = realm.createObject(Workout.class);
w.setmWorkoutId(UUID.randomUUID().toString());
realm.commitTransaction();
這裏是我的鍛鍊類:
public class Workout extends RealmObject
{
private String mWorkoutId;
private int restSecsLeft;
private boolean prevSetOver = true;
private boolean workoutOver = false;
public Workout()
{
}
public String getmWorkoutId() {
return mWorkoutId;
}
public void setmWorkoutId(String mWorkoutId) {
this.mWorkoutId = mWorkoutId;
}
public int getRestSecsLeft() {
return restSecsLeft;
}
public void setRestSecsLeft(int restSecsLeft) {
this.restSecsLeft = restSecsLeft;
}
public boolean getPrevSetOver() {
return prevSetOver;
}
public void setPrevSetOver(boolean prevSetOver) {
this.prevSetOver = prevSetOver;
}
public boolean getWorkoutOver() {
return workoutOver;
}
public void setWorkoutOver(boolean workoutOver) {
this.workoutOver = workoutOver;
}
}
我有一個創建鍛鍊後運行的服務,和調試奇後行爲,找到了一個實例,其中保存在鍛鍊RealmObject中的「prevSetOver」的值與從w.getPrevSetOver()返回的值不同。我不知道這是如何發生的 - 在實例化對象後,我不更改變量prevSetOver的值。我是一個新領域的用戶,不明白這是如何發生的。我已經看過的圖片是w.prevSetOver()方法的截圖,RealmObject具有不同的值。
在這個屏幕中,調試器中有更多的變量,爲了簡單起見,我把它們中的大部分留在了我的文章中。
你應該使用'executeTransaction()',而不是'開始/ commitTransaction()' – EpicPandaForce