내 Android 앱에 백업 및 복원 할 데이터가 있습니다. 이를 위해 BackupAgent
의 맞춤 구현을 만들었습니다. 백업 에이전트를 포함 한 내 매니페스트에서내 BackupAgent에 대해 onRestore가 호출되지 않았습니다.
을 내가 에뮬레이터 (안드로이드 2.2)을 테스트하고 있지만 당신은 내가 백업 서비스 API 키를 포함했다
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
package="com.myapp"
android:versionCode="14"
android:versionName="1.13" >
<application
android:backupAgent="com.myapp.MyBackupAgent">
<meta-data
android:name="com.google.android.backup.api_key"
android:value="my key" />
아래에 볼 수 있으며, 그것은 안로 왜냐하면 로컬 백업 전송을 사용하기 때문입니다. 내 응용 프로그램이 설치되어
-
에뮬레이터를 시작
- : 백업의 테스트를 다음과 같은 I 짓을 복원하기 위해
. 백업을
ADB 쉘을 사용 bmgr 사실
전화 내 코드의 일부를 사용
은 BackupManager 클래스의 dataChanged 방법이라고했다.
는 백업 작업을 수동으로
- 내 사용자 BackupAgent의 onBackup 메소드가 호출되었다는 로그에 검사 실행 bmgr
ADB 쉘을 시작합니다.
- 제거 응용 프로그램
- onRestore 메소드가 호출되는 경우 응용 프로그램을 로그에
- 검사를 다시 설치합니다.
onRestore 메서드가 호출되지 않는 것과 그 이유를 모르겠습니다. 응용 프로그램을 재설치하거나 adb를 사용하여 수동으로 복원을 실행 한 후 콘솔에서 다음을 참조하십시오.
$adb shell bmgr restore com.myapp
restoreStarting: 2 packages
restoreFinished: 0
done
와 로그에서이 다른
D/AndroidRuntime(8259):
D/AndroidRuntime(8259): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
D/AndroidRuntime(8259): CheckJNI is ON
D/AndroidRuntime(8259): --- registering native functions ---
D/BackupManagerService( 59): MSG_RUN_RESTORE [email protected]
V/LocalTransport( 59): start restore 1
V/LocalTransport( 59): nextRestorePackage() = @[email protected]
V/LocalTransport( 59): getRestoreData() found 7 key files
V/LocalTransport( 59): ... key=com.android.providers.settings size=1208
V/LocalTransport( 59): ... key=com.myapp size=501
V/LocalTransport( 59): ... key=android size=1208
V/LocalTransport( 59): ... key=com.android.providers.userdictionary size=1208
V/LocalTransport( 59): ... key=com.android.browser size=1208
V/LocalTransport( 59): ... key=com.android.inputmethod.latin size=1208
V/LocalTransport( 59): ... [email protected]@ size=11
V/LocalTransport( 59): no more packages to restore
V/LocalTransport( 59): finishRestore()
V/LocalTransport( 59): finishRestore()
D/AndroidRuntime(8259): Shutting down VM
하지만 난 단지의 시작 부분에 onRestore에 대한 호출이 실제로 좀 로깅 문이 (이루어지는 것이 표시되지 않는 이유는 무엇입니까?
이런 일이 있었던 적이 있습니까? onBackup
이 호출 된 경우에도 onRestore 메소드가 호출되지 않은 이유가 있습니까?
나는 삼성 갤럭시 넥서스라는 적절한 전화로도 시도했다. 다음 링크에 설명 된대로 백업을 사용하도록 설정했는지 확인했습니다. http://support.verizonwireless.com/clc/devices/knowledge_base.html?id=51309 로그에이 내용이 표시됩니다. 'W/BackupManagerService (196) : 백업 패스이지만 e = true p = false'는 활성화되었지만 준비되지 않았 음을 의미합니다. 왜 제공되지 않는가? – mollymay
오늘이 문제가 발생했습니다. onBackup은 예외없이 성공적으로 호출되었지만 재설치 된 앱에서는 onRestore가 호출되지 않습니다. 이유를 찾았습니까? 감사! – Loc