0
导致异常的线的内侧进行的交易的外境界数据是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
。
任何想法为什么抛出这个异常?
不能,对象所关联的Realm不处于'write'状态(不在事务中),所以它不会因为_another_ Realm处于写状态而改变其错误消息 – EpicPandaForce