Android realm.io:行/对象不再有效

时间:2014-12-06 12:07:35

标签: android database realm

这是我的删除功能,它确实找到workday1对象:

public static void delete(Context context, Workday workday) {
    Realm realm = getRealm(context);
    realm.beginTransaction();

    Workday workday1 = realm.where(Workday.class)
            .equalTo("date", workday.getDate())
            .equalTo("hours", workday.getHours())
            .equalTo("minutes", workday.getMinutes())
            .findFirst();

    workday1.removeFromRealm();
    realm.commitTransaction();
}

enter image description here

当它执行removeFromRealm方法时,它会崩溃:

java.lang.IllegalStateException: Illegal State: Row/Object is no longer valid to operate on. 是否已删除?

我该如何解决这个问题?任何帮助将不胜感激。

UPDATE(我可以打印以下方法返回的内容):

    Workday workday1 = realm.where(Workday.class)
            .equalTo("date", workday.getDate())
            .equalTo("hours", workday.getHours())
            .equalTo("minutes", workday.getMinutes())
            .findFirst();

    System.out.println("--------------------------------");
    System.out.println(workday1.getHours());

enter image description here

2 个答案:

答案 0 :(得分:2)

您正在尝试删除尚未提交给Realm的对象。

在这种特殊情况下,如果由于某种原因你不想再提交该对象,你可以简单地取消该交易。

答案 1 :(得分:1)

就我而言,问题是我删除的同一个对象是在适配器中。在我使适配器扩展RealmBaseAdapter之后,问题就停止了。