2012-03-14 174 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)方法。

因爲一旦活動在方向更改上重新創建,當您想關閉一個未連接到父級的對話框時,它會引發異常。

相關問題