View not attached to window manager

时间:2020-12-04 09:04:11

java.lang.IllegalArgumentException: View not attached to window manager

在用ProgressDialog的时候,任务结束后Dismiss对话框,但是如果由于一些原因,此时的activity在progressDialog的 dismiss之前,就给干掉了,就会有这样的错误。那如何正确处理呢?

1. 不要在非UI线程中使用对话框创建,显示和取消对话框

2. 如果一定要异步操作显示对话框怎么办?

Activity都有相应的操作对话框的回调比如onCreateDialog(),showDialog(),dimissDialog(),removeDialog()等等。这些因为都是Activity的方法,所以用起来更方便,也不用显示创建和操控Dialog对象,一切都由框架操控,相对来说比较安全。
另外就是一定要让对话框对象在Activity的可控制范围之内和生命周期之内,比如一定要是它的成员变量,并且在让对话框变量活跃在Activity的onCreate()和onDestroy()之间。