当方向改变发生时,生命周期的哪个方法被调用?
我的应用程序执行 onResume()
方法或者可能重新加载整个 Activity ,因为我设置了一个 bool 值来检查它是否第一次运行。我读过 onConfigurationChanged()
在方向改变发生时开始,是真的吗?
如何处理?
最佳答案
有趣的...
Activity is start onResume()
是您在 XML 中默认声明的。
正如我从堆栈溢出问题的答案中发现的那样:
方向改变
- onSaveInstanceState
- 暂停
- onStop
- onCreate
- onStart
- onRestoreInstanceState
- onResume
切换到 Activity 2
- onSaveInstanceState
- 暂停
在 Activity 2 中改变方向
- onStop
- onCreate
- onStart
从 Activity2 切回
- onResume
我猜是因为 Activity 1 在旋转时是隐藏的,所以没有调用 onRestoreInstanceState
因为没有“ View ”(即无法看到/查看) .此外,完全有可能拥有 2 个完全不同的纵向/横向布局文件,它们可能具有具有不同 ID 的不同 UI 元素。
因此,我想说如果你想在 onSaveInstanceState
中使用 Bundle 来保存你自己的数据,那么你需要在 onCreate
中添加额外的逻辑(在 Activity 1 中)在那里处理您自己的数据(以及在 onRestoreInstanceState
中进行有条件的处理)。
特别是,您可以维护一个“最后已知”方向字段,以便 onCreate
知道它需要处理您自己的数据,因为方向已更改,而不是依赖于 onRestoreInstanceState
被调用。
关于android - 当方向改变发生时调用哪个 Activity 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315908/