我有一个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的屏幕方向,因为其中一些需要输入,用户可能想要使用他们的物理键盘。
答案 0 :(得分:1)
好的,我想通了......非常简单的解决方案。只需将android:configChanges =“orientation | keyboardHidden”添加到AndroidManifest中的活动即可。这告诉它不要重新启动那些类型的配置更改的活动。仅适用于不同方向的单独布局,但我们很幸运没有。