如果我用新版本更新我的应用程序,sharedpreferences就会消失。
logcat说:包de.xxx.yyy代码路径从
/data/app/de.xxx.yyy-1.apk到/data/app/de.xxx.yyy-2.apk;保留
数据和使用新的
这个包裹和以前一样。
清单文件的更改是:

android:versionCode="6" -> android:versionCode="7"
android:versionName="1.6.000" -> android:versionName="1.8"

并添加了权限:
<uses-permission android:name="android.permission.VIBRATE" />

为什么要使用新的安装路径和新数据?
有人知道发生了什么吗?
更新
也许是前锋的问题。????
新的sharedpreferences还有其他结束字母。
OLD: de.xxx.yyy.a.f.xml
NEW: de.xxx.yyy.a.h.xml

我从班上得到这个名字。
SharedPreferences mPrefs = activity.getSharedPreferences(
                THECLASS.class.getName(), Activity.MODE_PRIVATE);

最佳答案

不要将类名用作sharedpreferences的密钥。
最好对sharedpreferences使用常量字符串,而不是类名。
proguard将混淆您的类名,如果您在项目中添加或修改某些内容,则可能会更改该类名。使用proguard,您的类名是动态的。

SharedPreferences mPrefs = activity.getSharedPreferences(
                YOURSTRING, Activity.MODE_PRIVATE);

10-07 12:42
查看更多