簡體   English   中英

Android 對話框拋出未附加到窗口管理器

[英]Android Dialog throwing not attached to window manager

我有以下引發異常的代碼。 除了嘗試/捕獲之外,有沒有辦法解決這個問題?

@Override
    public void onDestroy() {

            if(dialog != null && dialog.isShowing())
                dialog.dismiss();

        super.onDestroy();
    }

例外

Fatal Exception: java.lang.IllegalArgumentException: View=DecorView@2fee9e1[EventActivity] not attached to window manager
       at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:648)
       at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:548)
       at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:162)
       at android.app.Dialog.dismissDialog(Dialog.java:778)
       at android.app.Dialog.dismiss(Dialog.java:754)
       at com.exposure.fragments.BracketFragment.onDestroy(BracketFragment.java:191)
       at androidx.fragment.app.Fragment.performDestroy(Fragment.java:2830)
       at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1028)
       at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
       at androidx.fragment.app.BackStackRecord.executePopOps(BackStackRecord.java:496)
       at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2076)
       at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
       at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
       at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
       at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8669)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

調用onDestroy()時,視圖可能已分離,您將收到此異常。 您應該將代碼移至onPause()

@Override
public void onPause() {
    super.onPause();
    
    if(dialog != null && dialog.isShowing())
    {
       dialog.dismiss();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM