5

关于状态的文档onSaveInstanceState()

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

但是,我始终注意到,来自onPause()ALWAYS CALLED BEFORE的日志消息onSaveInstanceState()。我已经在这两种方法中放入了日志消息。请帮助我了解在什么情况下onSaveInstanceState()调用之前onPause()

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

4

3 回答 3

8

你可以在这里阅读。

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

于 2012-01-09T07:07:10.707 回答
3

请帮助我了解在 onPause() 之前调用 onSaveInstanceState() 的情况

HONEYCOMB 之前的平台和其他平台(从 HONEYCOMB 开始)的 Activity 生命周期存在差异:

API level >= 11onPause()被调用时,进程处于安全状态,不能被杀死。

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

于 2015-02-16T20:20:26.773 回答
0

onSaveInstanceState() 很好,但只有保证回调是 onPause(),当您的活动失去焦点时调用。所以,把你的状态保存在那里

于 2012-01-09T07:41:03.520 回答