如果我用新版本更新我的应用程序,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);