編集:このコードは実際に機能します。それを使用するコードに問題がありました。誰かが役に立つと思う場合に備えて、とにかくそれを残します。
ブール値の永続化された設定を読み書きするための 2 つのメソッドを持つクラスがあります。ただし、新しい値を書き込んで読み取ろうとすると、古い値が取得されます。アプリを強制終了して再起動した場合にのみ、新しい値が取得されます。問題は何ですか?
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);
}