안드로이드 개발 질문/답변
(글 수 45,052)
대량의 데이터를 delete 하고 그러니까 오래걸려서
에뮬레이터에서는 괜찮은데 폰에서는 그.. 안 되네요. 응답이 없다고..
쓰레드로 delete 하는데 중간에 db를 닫아버리면 오류가 터지지만
트라이 캣치 하면 강제 종료는 막을 수 있죠.
그런데 여기서 문제가..
저런식으로 닫아버려서
데이터는 어차피 지우던 거니까 지워지다 마는 건 상관없죠.
문제는 데이터가 파괴되어서 정상적인 접근이 불가능해진다던가..
하는 일이 일어날 수도 있는가.. 이게 문제겠네요.
그래서 그럴 수 있나요.
트랜잭션으로 묶어버리면 빨라진다는데 이렇게 하면 전원이 나가거나 하는 이유 등으로 강제 종료 되었을 때 데이터가 파괴된다고 어디서 봤습니다만..
파괴된다는 게 무슨 의미인지 모르겠고.. 데이터베이스가 아주 통채로 못쓰게 된다는 것인지.
강제로 닫아버리면
db not open 인가 하는 뭔가 not open 같은 뜻의 메세지는 항상 나왔습니다만..
다른 것도 나올까요.




작동하는 도중에 닫아버리면 안됩니다.
DB 관련 클래스에, 시작, 완료에 관한 상태를 저장하는 메소드를 만드심 어떨까요?
상태를 담당하는 스택이나 큐등을 만들어서, 해당 스택이나 큐의 정보를 확인한 뒤,
close()의 여부를 결정하도록 만들면 될듯해요.
음, 그리고 에초에 DB를 close() 안해주셔도, 별 이상은 없는 듯합니다.