Edit :этот код действительно работает. У меня была проблема в коде, который его использовал. Все равно оставлю, вдруг кому пригодится.
У меня есть класс с двумя методами для записи и чтения логического постоянного предпочтения. Однако, если я запишу новое значение, а затем попытаюсь его прочитать, я все равно получу старое значение. Только если я убью приложение и перезапущу его, я получу новое значение. Есть идеи, в чем проблема?
Context mContext;
....
public void writeFlag(boolean flag) {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(mContext);
Editor editor = sharedPreferences.edit();
editor.putBoolean("mykey", flag);
editor.commit();
}
public boolean readFlag() {
SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(mContext);
return sharedPreferences.getBoolean("mykey", false);
}