Android 长时间保存用户输入的数据

Android 长时间保存用户输入的数据,android,Android,我正在编写一个应用程序,用一个登录界面保存密码。用户可以更改登录密码。我使用以下代码保存密码,这样当应用程序重新启动时,密码不会重置 @Override public void onSaveInstanceState(Bundle savedInstanceState){ savedInstanceState.putString("pwd", currentPwd); super.onSaveInstanceState(savedInstanceState); } @Override publ

我正在编写一个应用程序,用一个登录界面保存密码。用户可以更改登录密码。我使用以下代码保存密码,这样当应用程序重新启动时,密码不会重置

@Override
public void onSaveInstanceState(Bundle savedInstanceState){
savedInstanceState.putString("pwd", currentPwd);
super.onSaveInstanceState(savedInstanceState);
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
    currentPwd = savedInstanceState.getString("pwd");
}
但我发现它只能保存密码一段时间。当我等待了很长时间,大约1小时,没有重新启动手机,它会重置我的密码


如何保存密码,使其不会重置

您可以使用SharedReference长期保存该类型的信息


您必须使用SharedReferences保存数据:

SharedPreferences prefs =
     getSharedPreferences("myprefname",Context.MODE_PRIVATE);

SharedPreferences.Editor editor = prefs.edit();
editor.putString("pwd", "thepassword");
editor.commit();
然后您可以检索它:

SharedPreferences prefs =
    getSharedPreferences("myprefname",Context.MODE_PRIVATE);

String password=prefs.getString("pwd",null);

我和你有完全相同的问题。我只是简单地使用了共享优先权。它将登录数据保存在XML文件中,您可以对其进行读取和写入

以下是Android writeup:

写:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
            SharedPreferences.Editor editor = settings.edit();
            editor.putString("key1", username);
            editor.putString("key2", password);
            editor.commit();
全文如下:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        String username = settings.getString("key1", null);
        String password = settings.getString("key2", null);

我和你有完全相同的问题。我只是简单地使用了共享优先权。它将登录数据保存在一个XML文件中,您可以对其进行读写操作。当我等待1小时时,仍然存在问题。我现在的代码是这样的:@Override public void onCreateBundle savedInstanceState{super.onCreatesavedInstanceState;requestWindowFeatureWindow.FEATURE_NO_TITLE;setContentViewR.layout.main;SharedPreferences settings=getsharedpreferencesetting,0;currentPwd=settings.getStringpwd,abc;}@Override public void onStop{super.onStop;SharedReferences settings=GetSharedReferences,0;SharedReferences.Editor=settings.edit;Editor.putStringpwd,currentPwd;Editor.commit;}我有什么问题吗?
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        String username = settings.getString("key1", null);
        String password = settings.getString("key2", null);