如果我使用新版本更新我的应用程序,则sharedPreferences将消失。
LogCat说:Package de.xxx.yyy codePath已更改 /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" />
为什么新的安装路径和新数据? 有人知道发生什么事吗?
更新 也许proguard是问题所在。 ??? 新的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);
答案 0 :(得分:4)
永远不要使用类名作为sharedPreferences的键。
最好为sharedPreferences使用常量String而不是类名。
Proguard将对您的类名进行模糊处理,如果您在项目中添加或修改某些内容,则可以更改此名称。使用proguard,您的类名是动态的。
SharedPreferences mPrefs = activity.getSharedPreferences(
YOURSTRING, Activity.MODE_PRIVATE);