如何在关闭应用程序之前调用方法?

时间:2019-03-25 16:29:27

标签: java android android-lifecycle

我有一个变量,其中包含可以在用户使用应用程序时更改的数据。 我的目标是在用户关闭应用程序之前将这些数据存储在SharedPrefs中,   我在想类似的东西

OnStop()  {
Preferences.edit()... }

但是我不知道正确的语法... 在此先感谢大家

3 个答案:

答案 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