Android開(kāi)發(fā)報(bào)錯(cuò) Unable to add window -- token null is not valid; is your activity running?
-
Unable to add window -- token null is not valid; is your activity running?
在Activity中show一個(gè)PopupWindow,出現(xiàn)上述錯(cuò)誤粟关,最后發(fā)現(xiàn)爆侣,是因?yàn)樵贏ctivity的onCreate中方法中令杈,調(diào)用了Show方法,此時(shí)Activity有可能View還沒(méi)有初始化完成米间,而我們showAsDropDown(View view,int i, int i)方法或者showAtLocation方法中調(diào)用了View赂苗,所以導(dǎo)致這個(gè)錯(cuò)誤出現(xiàn),網(wǎng)上有利用Handler的方式去延遲調(diào)用PopupWindow的展示贮尉,
例如:
@Override public void handleMessage(Message msg) { switch (msg.what) { case 0: popupWindow.showAtLocation(findViewById(R.id.rlShowImage), Gravity.CENTER|Gravity.CENTER, 0, 0); popupWindow.update(); break; } } };
這種方法不失為一種解決辦法拌滋,再簡(jiǎn)單的方法就是在 onStart方法中,new PopupWindow對(duì)象猜谚,再Show败砂,就行了
同理,在Dialog使用中出現(xiàn)這種錯(cuò)誤也可以解決