0

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

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

@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
    currentPwd = savedInstanceState.getString("pwd");
}

但我发现它只能暂时保存密码。当我等待很长时间,大约1小时,没有重启手机,它会重置我的密码。

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

4

3 回答 3

0

我有和你一样的问题,或者确实有。我只是使用了 Shared_Prefs。它将登录数据保存在 XML 文件中,您可以对其进行读写。

这是 Android 文章:http: //developer.android.com/guide/topics/data/data-storage.html

来写:

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);
于 2012-05-19T12:46:46.573 回答
0

您必须使用 sharedpreferences 保存数据:

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);
于 2012-05-19T12:22:52.463 回答
0

您可以使用sharedPreference.

public class PreferenceData 
{
    static final String PREF_USER_PASSWORD = "user_password";

    public static SharedPreferences getSharedPreferences(Context ctx) 
    {
        return PreferenceManager.getDefaultSharedPreferences(ctx);
    }

    public static void setUserPassword(Context ctx, String userPassword) 
    {
        Editor editor = getSharedPreferences(ctx).edit();
        editor.putString(PREF_USER_PASSWORD, userPassword);
        editor.commit();
    }

    public static String getUserPassword(Context ctx) 
    {
        return getSharedPreferences(ctx).getString(PREF_USER_PASSWORD, "");
    }
}
于 2012-05-19T12:20:36.367 回答