realm
파일을 삭제하는 동안 java.lang.IllegalStateException
이 나타납니다.파일을 삭제하기 전에 영역의 모든 인스턴스를 닫는 방법
java.lang.IllegalStateException : 열린 영역과 관련된 파일을 삭제할 수 없습니다. 그 파일을 삭제하기 전에) (왕국의 모든 인스턴스를 닫습니다 기억 /data/data/com.mypackage.name/files/filename.realm
내가 모두 executeTransactionAsync
및 executeTransaction
방법을 사용했다. 그래서, 전체 realm
파일을 삭제하기 전에 닫을 수없는 인스턴스 async
이 있다고 생각합니다.
realm
의 모든 인스턴스를 닫거나이 예외가 발생하지 않고 realm
파일을 삭제하는 방법은 무엇입니까?
https://realm.io/docs/java/latest/#realm-instance-lifecycle 감사를 참조하십시오. 그것도 내가 생각한 것과 동일합니다. 'Realm'이'getLocgealInstanceCount' 또는'getGlobalInstanceCount' 인스턴스를 통해 영역 인스턴스 수를 얻을 수 있지만 인스턴스 목록을 가져올 수없는 이유는 무엇입니까? 또는 모든 영역 인스턴스를 중지하고 닫는 기본 함수가 아닙니다. – NamNH
우리는'forceClose' 메쏘드를 만들 수 있습니다. 그러나 그것은 아마도 당신의 앱의 다른 부분을 망가 뜨릴 것입니다. 그래서 우리는 그것을 추가하지 않았습니다. –
알겠습니다. 제한된 지식으로, 나는'executeTransactionAsync'가 새로운'RealmAsyncTask'를 만들고, 보류중인 트랜잭션 영역과 함께 새로운'bgRealm' 인스턴스를 생성한다는 것을 소스에서 발견했습니다. 'submitTransaction' 후에 닫을 수 있지만 트랜잭션에 있다면 수동으로 모든 인스턴스를 중지 할 수 없으므로 영역 파일을 삭제할 수 없습니다. – NamNH