长时间保存用户输入数据

时间:2012-05-19 12:17:26

标签: android

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

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

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

但我发现它只能保存密码一段时间。当我等了很长时间,大约1个小时,没有重启移动电话,它将重置我的密码。

如何保存密码以免重置?

3 个答案:

答案 0 :(得分: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, "");
    }
}

答案 1 :(得分: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);

答案 2 :(得分: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);