我正在尝试将密钥保存在密钥“密码”中。我打算在关闭应用程序时保存数据。所以我试着把数据放在一起将其保存在onStop()方法中。但它不起作用。
protected void onStop() {
SharedPreferences prefs = this.getSharedPreferences(
"gmail.nextgenancestor.knocked", Context.MODE_PRIVATE);
prefs.edit().putString("password", password);
prefs.edit().commit();
Log.d("password", password);
Log.d("goodbye", prefs.getString("password", "not found"));
super.onStop();
}
日志的结果:
密码:紧急
再见:未找到
答案 0 :(得分:0)
问题在于prefs.edit()
创建了一个Editor
的实例,您必须在提交时重复使用该实例。这应该修复代码:
SharedPreferences prefs = this.getSharedPreferences(
"gmail.nextgenancestor.knocked", Context.MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString("password", password);
editor.commit();
答案 1 :(得分:0)
问题是您在SharedPreferences.Editor
的实例中设置数据,而您没有在其上调用commit()
。试试这个:
SharedPreferences prefs = this.getSharedPreferences("gmail.nextgenancestor.knocked", Context.MODE_PRIVATE);
prefs.edit().putString("password", password).commit();
或:
SharedPreferences prefs = this.getSharedPreferences("gmail.nextgenancestor.knocked", Context.MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString("password", password);
editor.commit();
以下是关于如何在Android
中使用SharedPreferences
的{{3}}
答案 2 :(得分:0)
替换
SharedPreferences prefs = this.getSharedPreferences(
"gmail.nextgenancestor.knocked", Context.MODE_PRIVATE);
prefs.edit().putString("password", password);
prefs.edit().commit();
与
SharedPreferences prefs = this.getSharedPreferences(
"com.example.dsfsdf", Context.MODE_PRIVATE);
Editor edit = prefs.edit();
edit.clear();
edit.putString("password", password);
edit.commit();