Tôi đang sử dụng showDialog()
và dismissDialog()
để hiển thị hộp thoại tiến trình trong ứng dụng của mình. Đã chuyển từ việc tạo hộp thoại và gọi show()
trên đó để sử dụng tính năng này để lưu trạng thái khi thay đổi hướng.Android - dismissDialog không loại bỏ hộp thoại
Nhưng khi tôi thay đổi hướng từ chân dung-> phong cảnh-> chân dung, dismissDialog()
không còn loại bỏ hộp thoại nữa. Hộp thoại luôn ở đó và tôi cần nhấn nút quay lại để nó biến mất.
Bất kỳ lý do nào khiến nó hoạt động theo cách đó?
Sửa
Để khắc phục vấn đề này, tôi đã cố gắng thêm một removeDialog()
trong onDestroy()
để hộp thoại không được tạo ra/hiển thị hai lần và trước khi thay đổi hướng, hộp thoại được lấy ra. Cố gắng thêm báo cáo đăng nhập và xem những gì sẽ xảy ra
05-21 12:35:14.064: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:14.064: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.385: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:15.415: DEBUG/MyClass(193): *************onDestroy
05-21 12:35:15.585: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:15.585: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.715: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.214: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:17.214: DEBUG/MyClass(193): *************onDestroy
05-21 12:35:17.275: ERROR/WindowManager(193): android.view.WindowLeaked: Activity com.android.MyClass has leaked window com.android.internal.policy.impl.P[email protected] that was originally added here
05-21 12:35:17.395: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:17.395: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.475: DEBUG/MyClass(193): *************onCreareDialog
Nếu chúng ta thấy ở đây, ban đầu khi hoạt động được hiển thị, onCreateDialog được gọi một lần và về việc thay đổi phương hướng, onSaveInstanceState và onDestroy được gọi.
Nhưng sau đó, onCreateDialog được gọi hai lần (một lần gọi hàm showDialog mà tôi tạo, nhưng tại sao lại là lần thứ 2?) Và điều này xảy ra mỗi lần tôi thay đổi hướng.
Bất kỳ ý tưởng nào tại sao điều đó xảy ra?
Cảm ơn một lần nữa
Ai đó có thể giúp tôi giải quyết vấn đề này? Tôi đã nhìn thấy nhiều bài đăng và blog về vấn đề này nhưng dường như không có giải pháp nào hoạt động. – lostInTransit