我正在尝试制作一个带有帐户的应用程序,但我正在努力解决 SharedPrefences
。我让他们保存帐户名称,它可以工作,但只有当我杀死应用程序一次时,我可以关闭手机并重新打开它,它仍然在那里,但是当我使用保存的 3/4 首选项杀死应用程序时有时,所有帐户都消失了。有什么问题,我用 onPause
保存首选项, onDestroy
, onStop
并阅读 onResume
, onCreate
,重新启动。之前我只有 onPause 和 onResume 并且它的工作原理是一样的。这是代码:
@Override
protected void onPause(){
super.onPause();
sharedpref = this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpref.edit();
editor.putString("uzytkownik1", getIntent().getStringExtra("nazwauz"));
editor.putString("uzytkownik2", getIntent().getStringExtra("nazwauz2"));
editor.putString("uzytkownik3", getIntent().getStringExtra("nazwauz3"));
editor.putString("uzytkownik4", getIntent().getStringExtra("nazwauz4"));
editor.putString("haslo1", getIntent().getStringExtra("haslouzy1"));
editor.putString("haslo2", getIntent().getStringExtra("haslouzy2"));
editor.putString("haslo3", getIntent().getStringExtra("haslouzy3"));
editor.putString("haslo4", getIntent().getStringExtra("haslouzy4"));
editor.apply();
}
我在 onStop 和 onDestroy 中写了同样的内容。
继续:
sharedpref = this.getPreferences(Context.MODE_PRIVATE);
if (sharedpref.getString("uzytkownik1", null) != null || sharedpref.getString("uzytkownik2", null) != null || sharedpref.getString("uzytkownik3", null) != null || sharedpref.getString("uzytkownik4", null) != null) {
user1.setText(sharedpref.getString("uzytkownik1", null));
user2.setText(sharedpref.getString("uzytkownik2", null));
user3.setText(sharedpref.getString("uzytkownik3", null));
user4.setText(sharedpref.getString("uzytkownik4", null));
与 onCreate
相同,和onRestart
.
最佳答案
尝试在设置 SharedPreferences
后放置 super.onPause();
像这样
@Override
protected void onPause(){
sharedpref = this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpref.edit();
editor.putString("uzytkownik1", getIntent().getStringExtra("nazwauz"));
editor.putString("uzytkownik2", getIntent().getStringExtra("nazwauz2"));
editor.putString("uzytkownik3", getIntent().getStringExtra("nazwauz3"));
editor.putString("uzytkownik4", getIntent().getStringExtra("nazwauz4"));
editor.putString("haslo1", getIntent().getStringExtra("haslouzy1"));
editor.putString("haslo2", getIntent().getStringExtra("haslouzy2"));
editor.putString("haslo3", getIntent().getStringExtra("haslouzy3"));
editor.putString("haslo4", getIntent().getStringExtra("haslouzy4"));
editor.apply();
super.onPause();
}
关于java - 杀死应用程序时 SharedPreferences 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56619428/