我有一个变量,其中包含可以在用户使用应用程序时更改的数据。 我的目标是在用户关闭应用程序之前将这些数据存储在SharedPrefs中, 我在想类似的东西
OnStop() {
Preferences.edit()... }
但是我不知道正确的语法... 在此先感谢大家
答案 0 :(得分:0)
Activity.onStop()
刚好在应用程序完全关闭之前调用(从最近的事件中删除)
您可能应该使用Activity.onPause()
保存您的偏好设置,因为当用户只是切换到另一个应用程序时也会被调用。
其他信息: https://developer.android.com/guide/components/activities/activity-lifecycle
答案 1 :(得分:0)
您应该将持久性数据保存在onPause()
中,而不是onStop()
中。
然后,您可以在onResume()
中检索数据。
要保存数据,您可以看一下此示例
SharedPreferences.Editor editor = getSharedPreferences("myPrefs", MODE_PRIVATE).edit();
editor.putString("username", "My name");
editor.apply();
然后像这样检索您的数据
SharedPreferences prefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
String username = prefs.getString("username", "No username"); //No username is the default value
答案 2 :(得分:0)
使用onStop方法将数据保存到SavedPrefs中。
Syntex会像
在onStop方法中
@Override
protected void onStop() {
super.onStop();
SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = saved_values.edit();
edit.putString("key", "stringToBeSaved")
editor.commit();
}
然后在onCreate方法中检索数据
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String foo = saved_values.getString("key", "default_string");
}
记住密钥应该相同。
有关更多信息,请查看有关以下内容的Android文档
共享的首选项:Save key-value data
Android生命周期:Understand the Activity Lifecycle