onConfigurationChanged第一次没有被调用

时间:2011-04-18 10:11:47

标签: android orientation

我在尝试捕获onConfigurationChanged事件时遇到问题。这是场景:

  1. 活动A开始(收听onConfigurationChanged
  2. 手机已旋转至横向模式(正在调用onConfigurationChanged)。开始活动B.
  3. 活动B开始(收听onConfigurationChanged)(LANDSCAPE)
  4. 活动B旋转回纵向(onBackPressed事件引发)。活动B被销毁,A被回叫。
  5. 活动A恢复
  6. 手机已旋转至横向模式。这次没有调用onConfigurationChanged
  7. 手机已旋转至纵向模式。 onConfigurationChanged已调用。
  8. 手机已旋转至横向模式。 onConfigurationChanged已调用。
  9. 为什么第6步不会调用onConfigurationChanged事件?它完全没有意义。你知道这可能是什么问题吗?

3 个答案:

答案 0 :(得分:1)

我遇到同样的问题,我更新了用户界面onResume()来修复它。

答案 1 :(得分:0)

我有完全相同的问题。我仍然不明白Android系统的这种行为,但您可以使用onOrientationChanged OrientationEventListener而不是配置更改处理。

看到这个答案(例子不完美,但显示方式):https://stackoverflow.com/a/13844242/554281

答案 2 :(得分:0)

我遇到了同样的问题,并被困在这一个星期一个多星期。然后我准备了一个带有tabHost的示例APP,并在示例应用程序上重现了同样的问题。在玩完之后,我发现这是android的tabHost的一个bug。所以,我已将tabHost迁移到FragmentTabHost,发现问题已经消失。

使用tabHost模拟问题:

设有两个标签,即A和B

模拟1(出现错误)

  1. 以纵向模式到达A
  2. 以纵向模式转到B
  3. 将B旋转为横向
  4. 在横向模式下返回A.
  5. 将A旋转为纵向(tabActivity的onConfigChanged方法被触发。但A活动的onConfigChanged不会被触发)
  6. 模拟2(工作正常)

    1. 以纵向模式到达A
    2. 以纵向模式转到B(继续旋转,但在纵向模式下停止)
    3. 在肖像模式下返回A.
    4. 将A旋转为横向(tabActivity的onConfigurationChanged方法和A活动被触发)
    5. 摘要:如果你以相同的方向返回到屏幕,则会调用onConfigurationChanged()。

相关问题