我正在開發一個Android應用程序,應該只能在肖像模式下運行,由於佈局不適合手機的橫向屏幕。 但是,在平板電腦和上網本上,我希望應用只能在橫向模式下運行。setRequestedOrientation之前顯示ProgressDialog導致崩潰
我現在試着檢查應用程序是否在平板設備上運行,並通過setRequestedOrientation設置相應的請求方向。
問題是,當設備未按照我要求的方向保持設備時,應用程序崩潰,因爲我在調用setRequestedOrientation之後不久顯示了一個progressDialog,它似乎泄漏了一個窗口。
logcat的說:
10-18 21:15:30.698: E/WindowManager(653): Activity has leaked window [email protected] that was originally added here
10-18 21:15:30.698: E/WindowManager(653): android.view.WindowLeaked: Activity has leaked window [email protected] that was originally added here
10-18 21:15:30.698: E/WindowManager(653): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:279)
10-18 21:15:30.698: E/WindowManager(653): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
10-18 21:15:30.698: E/WindowManager(653): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
10-18 21:15:30.698: E/WindowManager(653): at android.view.Window$LocalWindowManager.addView(Window.java:537)
10-18 21:15:31.888: E/WindowManager(653): Activity has leaked window [email protected] that was originally added here
10-18 21:15:31.888: E/WindowManager(653): android.view.WindowLeaked: Activity has leaked window [email protected] that was originally added here
10-18 21:15:31.888: E/WindowManager(653): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:279)
10-18 21:15:31.888: E/WindowManager(653): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
10-18 21:15:31.888: E/WindowManager(653): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
10-18 21:15:31.888: E/WindowManager(653): at android.view.Window$LocalWindowManager.addView(Window.java:537)
10-18 21:15:34.168: E/AndroidRuntime(653): at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:599)
10-18 21:15:34.168: E/AndroidRuntime(653): at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:336)
10-18 21:15:34.168: E/AndroidRuntime(653): at android.view.WindowManagerImpl$CompatModeWrapper.removeView(WindowManagerImpl.java:151)
我能做什麼來防止這種崩潰? 任何幫助將不勝感激。
編輯: 由於我無法解決這個問題,我終於設法編輯我的佈局,現在它允許在縱向和橫向模式下使用。
感謝您編寫這麼長的答案,但不幸的是它並沒有解決我的問題。 –
沒問題。對不起,它並沒有幫助你。下次如果您添加一些源代碼,它將有助於追蹤您的具體問題。我有類似的問題,這對我的具體問題有效。很高興你的工作雖然。 – Dave
謝謝,你的回答救了我戴夫!實際上,你只需要在清單中設置'android:configChanges ='orientation''並在'onCreate()'的開頭調用'setRequestedOrientation()';) –