在顯示對話框之前,我檢查活動是否完成以避免應用程序崩潰。Activity.isFinishing()返回true但錯誤
if(!activity.isFinishing()){
showDialog();
}
但在某些情況下,它返回true,但活動沒有結束,我可以繼續使用我的應用程序,但是當我嘗試顯示一個對話框,它說,活動結束。
在什麼情況下可以發生?
在顯示對話框之前,我檢查活動是否完成以避免應用程序崩潰。Activity.isFinishing()返回true但錯誤
if(!activity.isFinishing()){
showDialog();
}
但在某些情況下,它返回true,但活動沒有結束,我可以繼續使用我的應用程序,但是當我嘗試顯示一個對話框,它說,活動結束。
在什麼情況下可以發生?
我發現了什麼是我的問題。
是檢查if(!activity.isFinishing())
類是Singletone
在某些情況下,當應用程序去後臺Activity
被關閉,當應用程序回到前臺新Activity
創建和老年活動仍然是在Singletone
和沒有更新。
所以我確信Singletone
在這種情況下更新了Activity
。
希望它可以幫助任何人。
試試這個:
if(!activity.isDestroyed()) {
showDialog();
}
希望這將有助於。
我想你可能有問題,在對話框中 檢查您的對話框:
if(mDialog.isShowing||mDialog.!=null){mDialog.finish();}
分享您的代碼 –
爲什麼你這樣做呢?我不明白你想解決什麼問題... –
我試圖避免BadTokenException當dialog.show()被調用 – YGHM