1. 程式人生 > >自定義Dialog dismiss時 View not attached to window manager

自定義Dialog dismiss時 View not attached to window manager

自定義Dialog 用來顯示載入動畫,自定義dialog有個定時器,當超過一定時間的時候,會自動dismiss掉dialog,但是當頁面已經關閉的時候,這兩個dismiss操作會重複,所以dismiss dialog會crash報錯。
View not attached to window manager

解決方法,可以設定dialog的setOwnerActivity為當前頁面,在dismiss時候判斷Activity是否已經關閉,

如下:
1、新增設定dialog的setOwnerActivity
context為建立dialog物件,傳遞進去當前頁面,
dialog.setOwnerActivity((Activity) context);

2、dialogdismiss判斷

//得到dialog的OwnerActivity
Activity activity = dialog.getOwnerActivity();
//判斷頁面是否關閉
if ( activity != null && !activity.isFinishing()) 
dialog.dismiss();