안드로이드 전화에서 내 애플 리케이션의 데이터베이스를 백업하는 방법을 찾고 있습니다. 나는 SQLite 데이터베이스가 단지 파일이라는 것을 안다. 따라서 파일을 사용할 수 있다면 SD 카드에 파일을 복사 할 수있을 것으로 기대한다.안드로이드 데이터베이스 백업
그러나 백업/복원을 위해 내 데이터베이스/활동을 준비하는 방법은 확실하지 않습니다.
시작할 때 주 활동은 데이터베이스의 한 테이블에서 항목을 읽고 ListView
에 표시합니다. API의 "Notes"샘플에서 볼 수 있듯이 테이블에 대한 변경 사항을 자동으로 알리는 커서가 있습니다 (테이블에 레코드를 추가/제거/업데이트 할 때 ListView
이 자동으로 업데이트 됨).
So : 데이터베이스 파일을 SD 카드에 복사하면 문제가 발생하지 않습니다. 그러나 사용자가 데이터베이스 파일을 복원하려면 어떻게해야합니까? 데이터 폴더에 다시 파일을 복사 할 수 없습니다. (편집 : 데이터베이스에서 데이터를 표시하는 뷰가 열려있는 연결을 보유하고있을 수 있습니다.)?
백업/복원을 구현할 때 "모범 사례"는 무엇입니까? 내가 생각 한 한 가지 방법은 다음과 같습니다
- 열기 특별한 그와 가까운 데이터베이스 연결
- 를 제거 주요 활동을 위해 열려있는 데이터베이스를 연결
- 전화
finish()
를 보유하지 활동 를 "복원" - 주 활동의 새 "인스턴스"열기
- "복원"활동에 대해
finish()
을 호출하십시오.
갈 길이 멀어 졌나요? 어떤 조언을 주셔서 감사합니다!
내 말은 뷰에 열린 연결이있을 때 파일을 복사 할 수 없다는 것입니다. 데이터베이스에서 데이터를 검색 한 뷰가 끝나면 모든 연결을 닫아야합니다. 맞습니까? –
맞습니다. 올바른 생각입니다. –
좋아, 고마워. –