我正在编写一个使用登录界面保存密码的应用程序。用户可以更改登录密码。我使用以下代码保存密码,以便在重新启动应用程序时密码不会重置。
@Override
public void onSaveInstanceState(Bundle savedInstanceState){
savedInstanceState.putString("pwd", currentPwd);
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
currentPwd = savedInstanceState.getString("pwd");
}
但我发现它只能保存密码一段时间。当我等了很长时间,大约1个小时,没有重启移动电话,它将重置我的密码。
如何保存密码以免重置?
答案 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);