我有一个SharedPreference计算我的应用程序的启动量。当我安装我的应用程序时,我希望它为0。然而它是14.我在数据库中观察到的同样奇怪的行为,已经存在于全新安装中。
我无意回收我的应用数据(例如在Google Cloud中)。在我的设备帐户设置中,应用数据同步功能已开启。如果我将其关闭,并重新安装,我会发现同样的行为。
任何人都观察到这样的行为吗?有没有办法阻止回收旧数据并强行安装?
答案 0 :(得分:7)
在Android Marshmallow中谷歌推出了“自动备份”功能,如果您的targetSdkVersion为> = 23,则默认情况下该功能处于启用状态。
这将默认备份您的数据库和SharedPreferences,并在重新安装应用程序时将其还原。要关闭此功能,您必须将android:allowBackup="false"
添加到AndroidManifest.xml
。
此处有更多信息:Auto Backup for Apps
答案 1 :(得分:0)
如果它有android:allowBackup =“false”,请在AndroidManifest上检查标记应用程序中的代码。如果您没有(默认情况下是这样),您的应用程序将参与Android备份和恢复基础架构,并且可能完全符合您的要求。
此帖中的更多信息:What is "android:allowBackup"?
答案 2 :(得分:0)
这需要从app端处理有关共享Prefs的信息。
创建了一个共享首选项助手类,并且在helper类中具有以下条件。
private static String SHARED_PREFS_VERSION = "SharedPrefsVersion"; // In this save the version of current shared Prefs.
void SharedPrefsHelper() {
if( BuildConfig.Version > getSharedPrefsVersion() ) {
SharedPreferences.Editor editor = prefs.edit(); editor.clear(); // Clear all the shared Prefs and update the current version.
SetSharedPrefsVersion(BuildConfig.Version);
}
}
有待进一步参考,请参阅: