如何通过在选项卡活动中启动的活动来处理屏幕方向更改

时间:2010-11-02 17:27:40

标签: android android-activity

我有一个TabActivity,每个Tab对应它自己的Activity。在其中一个中,在onCreate方法中,我使用startActivityForResult来显示一个对话框(特别是Bump的BumpAPI活动)。

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    bump = new Intent(this, BumpAPI.class);
    bump.putExtra(BumpAPI.EXTRA_API_KEY, API_KEY);
    startActivityForResult(bump, BUMP_API_REQUEST_CODE);
}

问题在于,当屏幕方向改变时,它会再次尝试创建选项卡的活动,从而生成另一个BumpAPI对话框,从而导致多个堆叠在一起。当方向发生变化时,我是否有一个钩子进入已启动的活动以取消之前的活动?

解决方法似乎是添加一个按钮,在单击时启动第二个活动,但这会增加不必要的步骤。

另外,我无法修复整个tabActivity的屏幕方向,因为其中一些需要输入,用户可能想要使用他们的物理键盘。

1 个答案:

答案 0 :(得分:1)

好的,我想通了......非常简单的解决方案。只需将android:configChanges =“orientation | keyboardHidden”添加到AndroidManifest中的活动即可。这告诉它不要重新启动那些类型的配置更改的活动。仅适用于不同方向的单独布局,但我们很幸运没有。