onSaveInstanceState()和onPause()调用序列

时间:2012-01-09 06:21:05

标签: android onpause

onSaveInstanceState()州{p> The documentation

  

如果调用该方法,则始终在onStop()之前调用它,并且可能在onPause()之前调用。

但是,我始终注意到onPause()之前始终要求onSaveInstanceState()的日志消息。我把日志消息放在这两种方法中。请帮助我了解在onSaveInstanceState()之前调用onPause()的情况。

环境:Android v4.0(API 14)+ Eclipse v3.7.1 - Indigo。

3 个答案:

答案 0 :(得分:6)

您可以阅读here

简而言之,您永远不会知道运行onSaveInstanceState的时间。

答案 1 :(得分:3)

  

请帮助我了解在什么情况下   在onPause()

之前调用onSaveInstanceState()

HONEYCOMB之前和其他平台之间的活动生命周期有所不同(从HONEYCOMB开始):

API级别> = 11 :调用onPause()时,进程处于安全状态,无法被杀死。

API级别< 11 :调用onPause()时,承载活动的进程将变为可填充状态。这意味着系统可以在不执行任何其他代码行的情况下终止包含活动的进程。因此,如果发生这种情况,onSaveInstanceState()可能永远不会被调用。为避免这种情况,系统应在onSaveInstanceState()之前调用onPause(),否则您将无法保存用户状态。

答案 2 :(得分:0)

onSaveInstanceState()很不错,但只有保证回调是onPause(),当你的活动失去焦点时调用。所以,保存你的州