ログインインターフェースでパスワードを保存するアプリを書いています。ユーザーはログインパスワードを変更できます。初めて、次のコードを使用してパスワードを保存し、アプリの再起動時にパスワードがリセットされないようにします。
@Override
public void onSaveInstanceState(Bundle savedInstanceState){
savedInstanceState.putString("pwd", currentPwd);
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
currentPwd = savedInstanceState.getString("pwd");
}
しかし、私がそれを尋ねた後、このウェブサイトの誰かが私に「SharedPreferences」を使用するように提案しました。そこで、次のようにコードを変更しました。
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
SharedPreferences settings = getSharedPreferences("setting", 0);
currentPwd = settings.getString("pwd", "abc");
}
@Override public void onStop(){
super.onStop();
SharedPreferences settings = getSharedPreferences("setting", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("pwd", currentPwd);
editor.commit();
}
実験の結果、最初のコードと同じ1時間後にパスワードがリセットされることがわかりました。2番目のコードで間違って変更しましたか?またはそれを解決するための提案された方法はありますか?ありがとうございました。