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();
}
EDIT: результаты журнала
чтобы этот блок всегда возвращал это значение, для которого используется неправильное приложение, и я не знаю, почему
//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