Tôi đang phát triển một ứng dụng Android chỉ nên chạy ở chế độ dọc do bố cục không phù hợp trên màn hình ngang của điện thoại. Trên máy tính bảng và netbook, tuy nhiên, tôi muốn ứng dụng chỉ chạy ở chế độ ngang.setRequestedOrientation trước khi hiển thị ProgressDialog dẫn đến sự cố
Tôi hiện đã cố gắng kiểm tra xem ứng dụng có đang chạy trên thiết bị máy tính bảng hay không và đặt định hướng được yêu cầu tương ứng thông qua setRequestedOrientation.
Vấn đề là ứng dụng đổ vỡ ngay bây giờ khi thiết bị chưa được giữ theo hướng tôi đang yêu cầu, vì tôi hiển thị tiến trìnhDialog ngay sau cuộc gọi đến setRequestedOrientation, có vẻ như sẽ rò rỉ một cửa sổ.
Logcat nói:
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 com.android.internal.policy[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)
tôi có thể làm gì để ngăn chặn tai nạn này? Mọi trợ giúp sẽ được đánh giá cao.
EDIT: Vì tôi không thể giải quyết vấn đề này, cuối cùng tôi đã chỉnh sửa Bố cục của mình để bây giờ cho phép sử dụng ở chế độ dọc và ngang.
Cảm ơn bạn đã viết câu trả lời dài như vậy, nhưng tiếc là nó không giải quyết được vấn đề của tôi. –
Không sao cả. Xin lỗi nó đã không giúp bạn. Lần tới nếu bạn thêm một số mã nguồn, nó sẽ giúp theo dõi vấn đề cụ thể của bạn. Tôi đã có một vấn đề tương tự, và điều này làm việc cho vấn đề cụ thể của tôi. Vui vì bạn đã làm nó mặc dù. – Dave
Cảm ơn, câu trả lời của bạn đã cứu tôi Dave! Trên thực tế, bạn chỉ cần đặt 'android: configChanges =" orientation "' trong tệp kê khai và gọi 'setRequestedOrientation()' ở đầu 'onCreate()';) –