Android:是不是经常调用saveInstanceState?

时间:2012-08-22 20:55:00

标签: android android-activity

在我的活动中,当我移动到下一个活动时调用saveInstanceState(例如:活动A启动活动B并调用活动A的saveInstanceState) - 这是正常行为吗?据我所知(从文档中),当OS关闭进程以回收资源时,会调用saveInstanceState。

3 个答案:

答案 0 :(得分:2)

每当您的活动从屏幕上消失时,状态将被保存以供进一步表示。 假设您执行屏幕方向更改。您可能知道,只要发生这种情况,视图就会完全重新创建。 Android为保持状态而采取的方式是在销毁和重新创建之前保存状态。

答案 1 :(得分:2)

  

据我所知(从文档中),当操作系统关闭进程以回收资源时,会调用saveInstanceState。

没有。在任何活动转换中都会调用它,因为Android可能会破坏您的活动,但希望重新创建该活动并使其看起来像从未被销毁过。常见的情况是配置更改(例如,旋转屏幕),但在其他情况下也会出现。

特别是,Android不能等到“操作系统关闭进程才能回收资源”,因为到那时,Android可能会非常急于获取这些资源。

答案 2 :(得分:1)

onPause()经常打电话......

onPause()当活动进入后台时,被称为活动生命周期的一部分,如下所示:

saveinstancestate()被调用以在被杀死之前从活动中检索每个实例状态,以便可以在onCreate(Bundle)或onRestoreInstanceState(Bundle)中恢复状态(由此方法填充的Bundle将被传递给两者)。