안드로이드 개발 질문/답변
(글 수 45,052)
쓰레드로 db에 접근해서 데이터를 읽어서 화면에 뿌려주는데요.
처음에는 각 메소드마다 db 열고 마지막에 close 시켰는데요.
이러니까 자꾸 쓰레드끼리 충돌해서 에러가 자꾸나서
찾아보다보니까 맨 처음에 한 번만 열고 나중에 닫으면 된다고 하길래 그렇게 했는데
여전히 문제인 것이 쓰레드가 언제 끝날지 모르는데 액티비티 종료 시점에 db를 닫을 수가 없다는 겁니다..
그래서 냅두면 close() was never explicitly called... 어쩌구 하는 오류가 뜹니다.
앱이 죽거나 그런 건 아니지만 메모리릭이 생긴다고 들은 것 같은데..
쓰레드를 어찌해야 하려나요..
아님 처음에 한 것처럼 그냥 사용할 때 열고 바로 닫아버리는 방식이 나으려나요..




저번에 글을 보기로 db.close는 메모리 릭이 없고
cursor.close는 메모리 릭이 있기때문에 해줘야된다고 들었습니다.
구지 액티비티 종료 시점이라면
onPause()
onDestroy()
같은 오버라이드 메소드를 찾아보시고
해결하시면 될것 같습니다.