在onPause()和onCreate()中保存/加载SharedPreferences

时间:2016-03-11 17:52:56

标签: android android-studio sharedpreferences

有时我注意到使用SharedPreferences时,可以在onPause()方法中保存任意值。

但是,我也看到可以在onCreate()方法中重新加载SharedPreferences中的内容。它似乎有效,我不知道为什么。

为什么这些首选项(例如)不会加载到onResume()中?据我所知,单击后退按钮并离开应用程序并不会破坏活动,它只是暂停它。

请参阅此图表了解Android生命周期:http://www.javatpoint.com/images/androidimages/Android-Activity-Lifecycle.png

我不明白为什么它本质上再次调用onCreate()。

1 个答案:

答案 0 :(得分:2)

第一件事:

共享偏好设置由控制,而不是活动生命周期。

所以,我相信你的问题是"什么时候保存共享偏好"?

并且答案是,当您使用共享首选项编辑它时,在共享首选项对象上调用commitapply方法时。方法如下:

SharedPreferences.Editor editor = getSharedPreferences(NameAndId, MODE_PRIVATE).edit();
 editor.putString("name", "Ruchir");
 editor.putInt("personId", 21);
 editor.commit();

现在,如果我想得到这个人的名字,Ruchir和这个人的身份证,21,我这样做:

pref.getString("name", null); // getting Ruchir

pref.getInt("personId", null); // getting 21

NO WAY 是控制保存内容的活动生命周期。 正在调用apply()commit()方法。

enter image description here(mrbool.com)