Android编程:onPause()调用,onSaveInstanceState(...)没有

时间:2014-05-21 21:59:20

标签: android activity-lifecycle

我在学习android的过程中。我读的书似乎在说如果一个活动暂停,将调用onSaveInstanceState(...)方法。

当我点击主页按钮时,在调用onPause()之后调用onSaveInstanceState(...)。 LogCat显示调用onPause(),调用onSaveInstanceState,然后调用onStop()。

当我点击后退按钮时,LogCat显示调用onPause(),调用onStop(),调用onDestroy()。不调用onSaveInstanceState(...)。

调用onPause()后是否应始终调用onSaveInstanceState(...)?如果没有,为什么在我回到家时onPause()之后调用它而不是在我回击后onPause()之后调用它?

谢谢!

格雷格

2 个答案:

答案 0 :(得分:0)

在以下情况下调用onSaveInstanceState():

  • 点击主页按钮
  • 设备的定位发生变化
  • 当您将应用与另一个应用切换时(从列表中选择其他应用)

如果您完成了您的活动(以编程方式或按回按钮),则不会调用onSaveInstanceState()。

对于onRestoreInstanceState(),请参阅以下文章:

Android: onSaveInstanceState not being called from activity

答案 1 :(得分:-1)

点击主页按钮时会调用 onSaveInstanceState(...),因为您可以在该特定点保存包并返回到您离开应用程序的同一点

例如,如果你正在阅读某个新闻应用中的新闻,而你正在整个页面的一半,现在你想点击主页按钮使用其他应用程序并回来阅读新闻  你希望从你离开的地方阅读新闻,不想从顶部开始滚动,所以当用户点击主页按钮ONsaveInstance被调用时,你可以保存包的视点从那里恢复视图。 / p>