SharedPreferences在一个现有应用程序中无法正常工作。我尝试了许多不同的方法,但仍然无法正常工作。始终获取默认值,再次启动应用程序。
你知道为什么吗?
String default_user = "Default_User";
SharedPreferences pref = this.getSharedPreferences("TEST_SHAREDPREF", MODE_PRIVATE);
String user = pref.getString("user", default_user);
Log.d("SHARED CHECK", user);
if (user.equals(default_user)) {
SharedPreferences.Editor edit = pref.edit();
edit.putString("user", "new_user");
boolean ok = edit.commit();
user = pref.getString("user", default_user);
Log.d("SHARED WRITE", user);
Toast.makeText(this, user + " Save process: " + ok, Toast.LENGTH_LONG).show();
} else {
Log.d("SHARED READ", user);
Toast.makeText(this, "READ SharedPrefs: " + user, Toast.LENGTH_LONG).show();
}
编辑:记录结果
该块总是返回这个错误的应用程序,我不知道为什么
//first run
SHARED CHECK Default_User
SHARED WRITE new_user
//each time after first
SHARED CHECK Default_User
SHARED WRITE new_user
该块始终返回所有应用程序
//first run
SHARED CHECK Default_User
SHARED WRITE new_user
//each time after first
SHARED CHECK new_user
SHARED READ new_user
最后,我解决了这个问题。其他开发人员之一添加了一种方法。此方法已删除data / data / packageName文件夹下的所有文件(libs文件夹除外)。我认为他们尝试删除缓存文件夹。
删除了此方法并解决了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句