앱을 다시 설치 한 후 allowBackup = true로 설정 한 후 공유 환경 설정에서 값 (Android 9.0 장치에서)을 검색하는 데 문제가 있습니다.
<manifest ... >
...
<application android:allowBackup="true" ... >
...
</application>
</manifest>
이것에 따르면 : https://developer.android.com/guide/topics/data/autobackup
공유 환경 설정을 복원해야합니까?
SharedPreferences prefs = getSharedPreferences("TEST", MODE_PRIVATE);
String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
int idName = prefs.getInt("idName", 0); //0 is the default value.
SharedPreferences.Editor editor = getSharedPreferences("TEST", MODE_PRIVATE).edit();
editor.putString("name", "Elena");
editor.putInt("idName", 12);
editor.apply();
- (에뮬레이터) 전화 (API 27)에서 내 Gmail 계정에 로그인했으며 드라이브 앱, 백업, 앱 데이터로 이동하면 Youtube, Gmail 등과 같은 18 개의 앱과 내 앱이 표시됩니다.
- "설정> 시스템> 백업"으로 이동하면 동일한 앱과 내 앱이 표시됩니다. 앱을로드하면 sharedprefs 코드가 실행됩니다. 앱을 닫고 메모리에서 제거합니다. 그런 다음 "지금 백업"버튼을 누릅니다.
확인하려면 목록에서 내 앱을 볼 수 있으며 0 분 전에 백업되었습니다.
그런 다음 앱을 제거하고 다시 설치하고 2 개의 값 (Elena 및 12)이있을 것으로 예상합니다. 그러나 그들은 지워집니다 ...
https://developer.android.com/guide/topics/data/testingbackup.html#Preparing 명령 줄을 통해 동일한 시도를했지만 작동하지 않았습니다.
adb shell
dreamlte:/ $ bmgr enabled
Backup Manager currently enabled
dreamlte:/ $ bmgr list transports
android/com.android.internal.backup.LocalTransport
com.google.android.gms/.backup.migrate.service.D2dTransport
* com.google.android.gms/.backup.BackupTransportService
dreamlte:/ $ bmgr backupnow my.package.name
Running incremental backup for 1 requested packages.
Package @pm@ with result: Success
Package nl.dagelijkswoord.android with progress: 1536/309248
Package nl.dagelijkswoord.android with result: Success
Backup finished with result: Success
dreamlte:/ $ dumpsys backup
Backup Manager is enabled / provisioned / not pending init
Auto-restore is disabled
No backups running
Last backup pass started: 1573804513565 (now = 1573806675410)
next scheduled: 1573819001046
...
1573806051616 : my.package.name
dreamlte:/ $ bmgr restore 1573806051616 my.package.name
No matching restore set token. Available sets:
35e84268c94b7d9c : SM-G950F
3a8e32898034f8af : SM-G950F
3e2610c4ea45fb96 : Nexus 5X
done
dreamlte:/ $ bmgr restore 35e84268c94b7d9c my.package.name
Scheduling restore: SM-G950F
restoreStarting: 1 packages
onUpdate: 0 = my.package.name
restoreFinished: 0
done
- 앱 제거
- 앱을 다시 설치하고 SharedPreferences 값이 여전히 있는지 확인하십시오.
- 가치는 사라졌다 ...
삼성 클라우드를 사용하는 삼성 기기에서는 동작이 달라 보이지만 지금은 재고 Android에 중점을 두겠습니다.
최신 정보:
build.gradle에서 버전을 다운 그레이드했기 때문에 더 이상 작동하지 않았습니다.
build.gradle:
versionCode 70
versionName "1.6.1"
심지어와 android:restoreAnyVersion="true"
에 AndroidManifest
버전이 다운 그레이드되지 않은 경우에만 작동합니다.