In my Android app I use a set of randomly generated file names to store some data. In order to ensure that the same set of file names are generated at app restart - and are
Based on @hungryghost's suggestion the I eventually implemented a solution
Problem:Shared preferences can be remembered by Android after app reinstall and blanket instructions in the manifest along the lines of android:allowBackup = "false"
are not a solution.
So why not turn the problem into a solution on its own? Here is what I do
If that key is not found I do two things
context.deleteSharedPrefernces(filename)
On (re)install, your app may be restoring files from Google auto-backup (via Google Drive). To disable this feature, you can explicitly set it to false in the manifest:
<manifest ... >
...
<application android:allowBackup="false" ... >
...
</application>
</manifest>
If you'd like more granular control over what is backed up/restored and what is not, you can include or exclude specific files from the backups.
See auto backup documentation: https://developer.android.com/guide/topics/data/autobackup#EnablingAutoBackup
If you don't want to disable auto backups, but want to reinstall with a "clean slate" (for testing purposes), you can do one of the following:
adb shell bmgr backupnow <PACKAGE>
See how to test backups documentation: https://developer.android.com/guide/topics/data/testingbackup#TestingBackup
to extend on this, for example mobile/src/debug/AndroidManifest.xml
<application
tools:replace="android:allowBackup"
android:allowBackup="false">
...
</application>
alike this one can disable auto-backup for debug builds - but keep it enabled for release builds.
simply because disabling auto-backup for release builds might not be the intended outcome.