如何在应用程序关闭之前调用方法?
How to call a method just before an app is closed?
我有一个变量,其中包含可以在用户使用应用程序时更改的数据。
我的目标是在用户关闭应用程序之前将这些数据存储在 SharedPrefs 中,
我在想
OnStop() {
Preferences.edit()... }
但我不知道正确的语法...
提前谢谢大家
Activity.onStop()
在应用程序完全关闭之前被调用(从最近的应用程序中踢出)
您可能应该使用 Activity.onPause()
来保存您的首选项,因为当用户切换到另一个应用程序时也会调用它。
更多信息:
https://developer.android.com/guide/components/activities/activity-lifecycle
您应该将持久数据保存在 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
将您的数据保存在 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
我有一个变量,其中包含可以在用户使用应用程序时更改的数据。 我的目标是在用户关闭应用程序之前将这些数据存储在 SharedPrefs 中, 我在想
OnStop() {
Preferences.edit()... }
但我不知道正确的语法... 提前谢谢大家
Activity.onStop()
在应用程序完全关闭之前被调用(从最近的应用程序中踢出)
您可能应该使用 Activity.onPause()
来保存您的首选项,因为当用户切换到另一个应用程序时也会调用它。
更多信息: https://developer.android.com/guide/components/activities/activity-lifecycle
您应该将持久数据保存在 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
将您的数据保存在 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