PopupWindow出現Unable to add window -- token null is not valid; is your activity running?
阿新 • • 發佈:2019-01-05
PopupWindow出現android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?的異常是因為PopupWindow需要依附在一個建立好的Activity上,那麼出現這個異常就說明此時你的Activity還沒有建立好,出現這種情況,很可能是在onCreate()或者是onStart()中呼叫導致的。
/** * 這個函式在Activity建立完成之後會呼叫。購物車懸浮窗需要依附在Activity上,如果Activity還沒有完全建好就去 * 呼叫showCartFloatView(),則會丟擲異常 * @param hasFocus */ @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if(hasFocus && BaseApplication.COUNT > 0) { isInitFloatViewLocation = true; // 購物車有資料了,肯定要初始化購物車懸浮窗的初始位置,準備顯示 showCartFloatView(); } }
showCartFloatView()的實現其實就是PopupWindow的建立,大家可以自己替換成自己的實現。此時就不會再出現上面那個該死的異常了。