我正在编写一个应用程序来使用登录界面保存密码。用户可以更改登录密码。第一次,我使用下面的代码保存密码,这样应用重启时密码不会重置:
@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();
}
经过我的实验,我发现密码会在一个小时后重置,与第一个密码相同。我是否为第二个代码更改了错误?或者有什么建议的方法来解决它?谢谢你。