在事务内部进行更改时,在事务外部更改Realm数据时抛出异常

时间:2016-09-21 15:15:04

标签: android realm

导致异常的行是for循环的结束括号:
* failedHTTPRequests的类型为RealmResults

RealmSingleton.getUserInstance().executeTransaction(new Realm.Transaction() {
                @Override
                public void execute(Realm realm) {
                    for (int i=0;i<failedHTTPRequests.size();i++){
                        if (failedHTTPRequests.get(i).getId().equals(FailedHTTPRequest.POST_USER_INFO))
                            failedHTTPRequests.get(i).deleteFromRealm();
//exception line    }

                }
            });

这似乎是一个非常常规的操作,除了for循环。我知道迭代RealmResults会导致问题,我会改变它,但我不知道它是如何导致java.lang.IllegalStateException: Changing Realm data can only be done from inside a transaction的。

知道为什么会抛出这个异常吗?

1 个答案:

答案 0 :(得分:0)

刚才意识到我正在尝试更改属于不同领域的数据。不应该抛出一个不同的例外吗?