屏幕方向更改处理程序在TabActivity中失败

时间:2012-06-25 07:13:20

标签: android screen-orientation tabactivity

我正在开发一个带有TabHost的Android应用程序SDK 7。

我的问题是屏幕方向更改处理程序无法完成工作。 这是场景:

  • 在纵向和横向之间切换时,屏幕会更新,反之亦然。
  • 只要 黑屏(屏幕保护程序)开启 或我 按下锁定按钮 <,屏幕就无法更新/强>

更新屏幕的“失败”是什么意思:

  • 在横向模式下,我按下锁定按钮。在它之后,我解锁 在纵向模式下,纵向屏幕完美更新。但, 一旦我旋转到横向模式,屏幕无法更新 景观模式。横向模式将再次完美更新 在我再次旋转到肖像后再将其旋转到 景观。在纵向模式下,我按下锁定按钮,没有 发生了如上所述的失败情况。

这是我使用的方法:

  • 我在每个场景中都应用android:configChanges="keyboardHidden|orientation"(TabActivity及其中的每个孩子)
  • 我在每个子屏幕中应用:onConfigurationChanged()
  • 我没有使用任何风景资源(布局资源和可绘制土地)。因此,我只对屏幕(横向和纵向)使用一个xml布局

我的问题有任何建议或解决方法吗?我会欣赏并尝试每一个建议。谢谢:D

1 个答案:

答案 0 :(得分:0)

您的解决方案应该是正确处理配置更改。使用configChanges只是针对非常边缘情况的优化,但是当您保存Activity状态并销毁Activity以缓解内存压力时,您仍需要做好准备。

在您的活动中:

@Override
public void onSaveInstanceState(Bundle outState) {
    // Put any temporary state for this Activity instance
    // into the outState bundle
}

然后在onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    if (savedInstanceState != null) {
        // Retrieve and reassign any state that you saved
    }
}

另见Handling Runtime Changes