Android生命周期发生故障

时间:2011-10-11 15:34:10

标签: android sharedpreferences lifecycle overwrite onpause

我正在尝试在onPause()事件期间将密钥保存到SharedPreferences,但是当我离开活动时以及当我返回活动时,这会被称为BOTH。

因此,当我返回活动时,我的值会被零和默认值覆盖,并且oncreate方法中的方法不会像我期望的那样响应。

也许我误解了Android的生命周期,但我已经看过十几次生命周期图,而我的程序并没有像我期望的那样行事。

洞察力表示赞赏。

2 个答案:

答案 0 :(得分:1)

根据我的经验,某些设备对活动的事件生命周期完全不了解。

我发现的唯一解决方案是使活动尽可能独立于生命周期。我看过设备,当他们从onPause返回时,只会创建一个新活动。你应该检查一下这不是你的情况。

设备的android测试似乎在这方面缺乏很多。

答案 1 :(得分:0)

根据活动生命周期,onPause()将在onResume()之后和onStop()之前调用。所以你在onPause()中做的任何事都会被执行两次。但是在我的实验中,有些设备在onStop()之前跳过onPause()一些次。所以你不要单独依靠暂停()。最好在适当的条件下在onCreate()或onResume()上编写代码。

请将您的代码放在此处以获得更多说明。