안드로이드 개발 질문/답변
(글 수 45,052)
이곳 QnA 를 보면 db 연결 하는 부분에서..
항상 SQLiteOpenHelper를 사용해서 새로 클래스 만드는 예제를 많이 볼수 있는데..
굳이 SQLiteOpenHelper를 사용하는 이유가 몬가요..?
대충 책에서 보기를 중앙 관리 db 비슷한곳에 저장해서 어플 실행할때마다 어플 /data/data/PACK/databases/ 에 저장한다고 알고 있는데요..
이렇게 해야 되는 이유가 있나요?
이렇게 하게 되면 프로그램을 uninstall 시켰을때에도 데이터가 남아 있어서 용량만 차지하고 있지 않을까요..?
저는 개발할때 SQLiteOpenHelper를 사용하지 않고 databases디렉토리에 db파일이 있는지 체크후 없으면 초기 기본 테이블들을 만들고(db install 과정) 있으면 불러서 처리하게끔 했는데요..
이렇게 했을때 문제점들이 없는지 궁금합니다.
에뮬로 테스트 할땐 프로그램을 새로 올려도 db 파일은 안없어지고 존재하고 있어서 db install 과정이 초기 1번 밖에 일어나지 않아서 아직까진 문제없이 개발하고 있는데요..
말이 길어졌는데요... SQLiteOpenHelper를 사용해야 될때와 사용하지 않아도 될때 가 언제인지 궁금합니다.
매일 눈팅만 하다가 처음으로 글 올려보네요~
개발하는데 많은 도움을 받고 있습니다.
말씀하신 DB를 초기에 확인하고 만들고 업그레이드가 일어났을때 어떤 작업을 할지 까지 helper를 extends 해서 아주 쉽게 만들 수 있습니다. (한두줄 더 넣는것만으로)
helper 없이도 만들 수 있겠지만 그래도 두가지 방법 모두 알고 사용하면 좋겠죠..
중앙관리 DB라는건 잘 모르겠습니다.(contents provider를 말씀하시는건가요?) 앱 실행할때마다 데이터 폴더에 저장되는게 아니라 처음부터 끝까지 그곳에 있는거지요.
Uninstall 하면 DB가 지워집니다. 업그레이드하면 DB 남아 있습니다. 가끔 이것이 충돌의 원인이 되기도 하죠.
수고하세요 ^^