java - Android应用程序停止变量重置-生命周期

标签 java android android-activity android-lifecycle

我有一个有几个屏幕的应用程序。 如果用户第一次打开应用程序,主屏幕会自动打开"new"屏幕。 然后,我设置一个 boolean 变量(在主屏幕上)来跟踪这一点。

目的是如果用户返回主屏幕,则可以跳过打开"new"屏幕的代码。

问题是该变量在 OnCreate 上不断重置。 因此,我添加了一些代码来使用 SharedPreferences。

这有效;但是,我想在应用程序退出时清除该变量。 (我希望每次应用程序第一次打开时都会打开"new"屏幕)。 因此,从生命周期来看,我尝试了 onStop 和 onDestory。 SharedPreferences 被清除,但是……在应用程序退出时不会被清除;但是当"new"屏幕出现时。

我对生命周期的看法是否错误? 是否有某种全局变量可以声明为仅在应用程序打开时有效?

此功能是必需的,因此我无法更改它。

最佳答案

您应该使用 onSaveInstanceState 和 onRestoreInstanceState,如果您的 Activity 调用 onCreate,它们将使 boolean 值保持 Activity 状态,但如果您退出并稍后返回,则不会。

请参阅此答案以了解实现情况: Saving Android Activity state using Save Instance State

关于java - Android应用程序停止变量重置-生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26874235/

相关文章:

java - Spring MVC, hibernate : Found shared references to collection when retreiving data

java - onEditorAction 未在 fragment 中调用

java - 反射(reflect) Android Activity 类的注释

安卓测试 : asserting an activity transitioned to another

android - 如何在 Android 中创建仪表?

java - Lucene - 第一次应用程序错误

java - Bazel:FlywayDB java.lang.UnsupportedClassVersionError

java - 如何在 Java-8 中显示普通纪元 ("CE")?

android - 在哪里存储 gradle 依赖版本

android - Android Hello World 应用程序在我的 Nexus 7 上放大且模糊