android app停止变量重置 - 生命周期

时间:2014-11-11 20:46:25

标签: java android android-activity android-lifecycle

我有一个有几个屏幕的应用程序。 如果是用户第一次打开应用程序,主屏幕将自动打开“新”屏幕。 然后我设置一个布尔变量(在主屏幕上)跟踪这个。

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

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

这有效;但是,我想在应用程序退出时清除变量。 (我希望每次应用程序第一次打开时都会打开“新”屏幕)。 所以,看看生命周期,我尝试了onStop和onDestory。 SharedPreferences已被清除但是...不在应用程序退出时;但是当出现“新”屏幕时。

我是否认为生命周期错了? 是否有某种全局变量我可以声明只有在应用程序打开时才会存在?

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

2 个答案:

答案 0 :(得分:1)

您应该使用onSaveInstanceState和onRestoreInstanceState,如果您的活动调用onCreate,它们将保持布尔值为活,但如果您退出并稍后返回则不会。

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

答案 1 :(得分:0)

您可以在整个代码的第一行中定义变量,这样,只有在再次打开应用程序时,变量才会重置。