导致异常的行是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
的。
知道为什么会抛出这个异常吗?
答案 0 :(得分:0)
刚才意识到我正在尝试更改属于不同领域的数据。不应该抛出一个不同的例外吗?