2013-12-11 3 views
0

SQLite 데이터베이스 백업/복원 작업을 위해 다음을 수행했습니다.SQLite 데이터베이스 백업 android

(1) Google에서 등록하십시오.

[http://developer.android.com/google/backup/signup.html][1]

(2) XML 파일을 매니페스트 키를 추가

<application> <meta-data android:name="com.google.android.backup.api_key" android:value="backup_service_key_from_google" /> ... </application>

(3) XML 파일에 내 backagent 에이전트를 추가

<application 
    android:allowBackup="true" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" 
    ... 
    android:backupAgent="MyBackupAgent" android:restoreAnyVersion="true" 
    > 

(4) MyBackupAgent라는 클래스를 만듭니다.

(5) 5 단계 후 백업

BackupManager mBackupManager = new BackupManager(this); 
    mBackupManager.dataChanged(); 

의 백업 관리자를 호출, 나는 아무것도 일이 표시되지 않습니다. MyBackupAgent에 중단 점을 넣었습니다. onCreate() 함수에서 아무것도 멈추지 않습니다.

제안 사항?

답변

1

오래 기다리지 않아도 될 수 있습니다. dataChanged에 전화를 참조하는 문서에서 :

이 호출은 클라우드에 백업 할 준비가 데이터가 있음을 백업 매니저에 통지합니다. 나중에 어떤 시점에서 백업 관리자가 백업 에이전트의 onBackup() 메소드를 호출합니다.

백업이 즉시 시작되지 않습니다. 그것은 미래의 시간에 예정되어 있습니다. 명령 행에서 adb를 사용하여 즉시 백업을 시작할 수 있습니다.

http://developer.android.com/guide/topics/data/backup.html (백업 에이전트 테스트)

+0

답장을 보내 주셔서 감사합니다. 응용 프로그램에 "adb"명령을 어떻게 통합합니까? SQLLite 데이터베이스는 응용 프로그램 설치를 위해 백업 및 복원해야합니다. 백업 서비스를 사용하는 것은 좋지 않을 수 있습니다. 지금 작동하는 응용 프로그램 폴더에서 JSONObject 객체를 사용하여 파일 백업을 구현했습니다. 누구나 Google 드라이브를 백업 장치로 사용해 보았습니까? 이 경우 다른 장치에서 백업 파일을 사용할 수 있습니다. 데이터 저장소 및 백업을 위해 웹 서비스를 사용하는 응용 프로그램이 있습니다. 이 응용 프로그램에서는 중앙 서버를 사용하여 백업/복원 작업을 수행하고 싶지 않습니다. – codingForFun

+0

adb는 데스크톱 응용 프로그램이므로 응용 프로그램 내에서 실행할 수 없습니다. – Kuffs

+0

Google 클라우드에 로그온하여 백업 파일을 볼 수 있습니까? – codingForFun