2016-11-17 143 views
2

在顯示對話框之前,我檢查活動是否完成以避免應用程序崩潰。Activity.isFinishing()返回true但錯誤

if(!activity.isFinishing()){ 
    showDialog(); 
} 

但在某些情況下,它返回true,但活動沒有結束,我可以繼續使用我的應用程序,但是當我嘗試顯示一個對話框,它說,活動結束。

在什麼情況下可以發生?

+1

分享您的代碼 –

+1

爲什麼你這樣做呢?我不明白你想解決什麼問題... –

+0

我試圖避免BadTokenException當dialog.show()被調用 – YGHM

回答

1

我發現了什麼是我的問題。

是檢查if(!activity.isFinishing())類是Singletone在某些情況下,當應用程序去後臺Activity被關閉,當應用程序回到前臺新Activity創建和老年活動仍然是在Singletone和沒有更新。

所以我確信Singletone在這種情況下更新了Activity

希望它可以幫助任何人。

1

試試這個:

if(!activity.isDestroyed()) { 
    showDialog(); 
    } 

希望這將有助於。

0

我想你可能有問題,在對話框中 檢查您的對話框:

if(mDialog.isShowing||mDialog.!=null){mDialog.finish();} 
相關問題