我正在开发一个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()';) –