에 영역 트랜잭션을 처리하기 위해, 나는 다음과 같이 패턴을 봤어요? "workWithRealmData()"함수가 예외를 throw하면 트랜잭션이 취소되지 않습니다. 그러나 우리는 어쨌든 마침내 자원을 사용하여 결국 영역을 닫습니다.어떻게 거기에 샘플 코드의 여러 조각에서 안드로이드
더 안전한 구조는 다음과 같습니다 안전한 보이는
try (Realm realm = Realm.getDefaultInstance()) {
realm.beginTransaction();
try {
workWithRealmData();
realm.commitTransaction();
} finally {
if (realm.isInTransaction()) {
realm.cancelTransaction();
}
}
}
-도하지만 모든 callsites에 대한 코드를 상당히 지저분 보인다.
정말이 문제는 - 영역이 즉시 닫히거나 취소되면 cancelTransaction을 무시하는 것이 안전할까요? 그렇지 않다면 무엇이 잘못 될 수 있습니까?
그 후에 바로 영역을 닫으면 'cancelTransaction'을 무시해도 안전합니다. 그래도 한 곳을 놓치면 실을 막을 것이기 때문에 내게는 조금 안전하지 않다고 느낍니다. –
위대한 - 확인을위한 감사, 기독교! – tmtrademark