2010-02-09 4 views
4

안드로이드 전화에서 내 애플 리케이션의 데이터베이스를 백업하는 방법을 찾고 있습니다. 나는 SQLite 데이터베이스가 단지 파일이라는 것을 안다. 따라서 파일을 사용할 수 있다면 SD 카드에 파일을 복사 할 수있을 것으로 기대한다.안드로이드 데이터베이스 백업

그러나 백업/복원을 위해 내 데이터베이스/활동을 준비하는 방법은 확실하지 않습니다.

시작할 때 주 활동은 데이터베이스의 한 테이블에서 항목을 읽고 ListView에 표시합니다. API의 "Notes"샘플에서 볼 수 있듯이 테이블에 대한 변경 사항을 자동으로 알리는 커서가 있습니다 (테이블에 레코드를 추가/제거/업데이트 할 때 ListView이 자동으로 업데이트 됨).

So : 데이터베이스 파일을 SD 카드에 복사하면 문제가 발생하지 않습니다. 그러나 사용자가 데이터베이스 파일을 복원하려면 어떻게해야합니까? 데이터 폴더에 다시 파일을 복사 할 수 없습니다. (편집 : 데이터베이스에서 데이터를 표시하는 뷰가 열려있는 연결을 보유하고있을 수 있습니다.)?

백업/복원을 구현할 때 "모범 사례"는 무엇입니까? 내가 생각 한 한 가지 방법은 다음과 같습니다

  1. 열기 특별한 그와 가까운 데이터베이스 연결
  2. 를 제거 주요 활동을 위해 열려있는 데이터베이스를 연결
  3. 전화 finish()를 보유하지 활동 를 "복원"
  4. 주 활동의 새 "인스턴스"열기
  5. "복원"활동에 대해 finish()을 호출하십시오.

갈 길이 멀어 졌나요? 어떤 조언을 주셔서 감사합니다!

답변

5

하지만 사용자가 데이터베이스 파일을 복원하려면 어떻게해야합니까? 파일을 다시 데이터 폴더로 복사 할 수는 없습니까?

예, 가능합니다. 파일 에서 SD 카드의 폴더로 옮길 수 있으므로 파일을 SD 카드에서 데이터 폴더로 이동할 수 있습니다.

지금 제안한 내용은 좋은 방법이지만 백업/복원 중에 열려있는 데이터베이스 개체를 원하지 않습니다.

+0

내 말은 뷰에 열린 연결이있을 때 파일을 복사 할 수 없다는 것입니다. 데이터베이스에서 데이터를 검색 한 뷰가 끝나면 모든 연결을 닫아야합니다. 맞습니까? –

+0

맞습니다. 올바른 생각입니다. –

+0

좋아, 고마워. –