2012-03-14 79 views
1

我正在Android 3.0平台上构建平板应用程序,无论平板电脑处于何种方向,都应始终显示在横向。我在启动时弹出一个对话框给用户。当平板电脑被横向锁定时,转向肖像并解锁,应用程序崩溃。我发现问题是一个IllegalStateException异常,并显示消息“查看未附加到窗口管理器”。我已经加入到清单中的应用标签:平板电脑应用程序在方向更改时崩溃

android:configChanges="orientation" 

,并加入到活动:

public void onConfigurationChange() {} 

错误被套上Dialog.dismiss()。

让我知道你是否需要更多信息。提前致谢。

+0

究竟什么错误? – waqaslam 2012-03-14 22:10:35

+0

将你的代码粘贴到'public void onConfigurationChange()' – waqaslam 2012-03-14 22:14:17

+0

onConfigurationChange方法是空的,因为不应该有任何改变。 – cren90 2012-03-14 22:45:15

回答

0

好吧,所以我们解决了这个问题。我们正在测试的平板电脑正在运行3.2。在3.2中,android:configChanges属性还需要在清单应用程序标签内包含屏幕大小

android:configChanges="orientation|screenSize" 

这是有帮助的: How do I disable orientation change on Android?

3

我认为你的onConfigurationChange方法不应该是空的。你也应该在其中调用super方法。写这样的:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    //your optional code 
} 
+0

我应该重复我的onStart代码,因为不应该有任何改变? – cren90 2012-03-14 23:06:44

+0

不,我不这么认为。在你的onConfigurationChanged中使用** super **方法 – waqaslam 2012-03-14 23:18:55

2

尝试关闭对话框中public void onPause()protected void onSaveInstanceState(Bundle outState)方法。

因为一旦活动在方向更改上重新创建,当您想关闭一个未连接到父级的对话框时,它会引发异常。

相关问题