在研究了如何使用sharePreferences在活动中存储值之后,我仍然对它存储数据的方式有一些疑问。
由于我们点击按钮关闭我们的活动后,Android通常会调用OnPause
,OnStop
和OnDestroy
。但是在我们使用sharedPreferences的方式中,我们在OnPause方法中调用它,就像下面的代码一样。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = (EditText)findViewById(R.id.editText);
mSharedPreferences = getSharedPreferences(PREFS, Context.MODE_PRIVATE);
mEditor =mSharedPreferences.edit();
String editTextString = mSharedPreferences.getString(EDIT_TEXT, "");
mEditText.setText(editTextString);
}
@Override
protected void onPause() {
super.onPause();
mEditor.putString(EDIT_TEXT, mEditText.getText().toString());
mEditor.apply();
}
在这种情况下,当我返回活动时,我输入了一些内容并按回按钮以退出活动。在活动停止并销毁之后,android如何仍然可以显示我在EditText中输入的内容。
答案 0 :(得分:0)
onPause
始终会被调用。无论是切换到另一个应用程序,切换活动,关闭手机还是其他任何一个。
当您按后退按钮时,将调用onPause
并保存共享首选项的值。之后,onStop
和onDestroy
get called in the order written。下次创建活动时,您将获取已保存的sharedpref值,以便它显示出来。