有时我注意到使用SharedPreferences时,可以在onPause()方法中保存任意值。
但是,我也看到可以在onCreate()方法中重新加载SharedPreferences中的内容。它似乎有效,我不知道为什么。
为什么这些首选项(例如)不会加载到onResume()中?据我所知,单击后退按钮并离开应用程序并不会破坏活动,它只是暂停它。
请参阅此图表了解Android生命周期:http://www.javatpoint.com/images/androidimages/Android-Activity-Lifecycle.png
我不明白为什么它本质上再次调用onCreate()。
答案 0 :(得分:2)
第一件事:
所以,我相信你的问题是"什么时候保存共享偏好"?
并且答案是,当您使用共享首选项编辑它时,在共享首选项对象上调用commit
或apply
方法时。方法如下:
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()
方法。