Toast BadTokenException的修復(fù)方案

關(guān)于Android7.x系統(tǒng)Toast顯示異常BadTokenException解決方案

BadTokenException詳細及原因

Fatal Exception: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@fcd9ef6 is not valid; is your activity running?
       at android.view.ViewRootImpl.setView(ViewRootImpl.java:806)
       at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:369)
       at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
       at android.widget.Toast$TN.handleShow(Toast.java:459)
       at android.widget.Toast$TN$2.handleMessage(Toast.java:342)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:186)
       at android.app.ActivityThread.main(ActivityThread.java:6491)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:804)

由于Android團隊意識到這個問題,從而在API 26的時候,加了一個try catch去捕獲了這個錯誤。但對于已經(jīng)發(fā)布了的API25,是一個永久的痛,無法修復(fù)。只能靠開發(fā)者自己了。。。

對于這個問題,我搜索了網(wǎng)上的解決方法,比較靠譜的是這個github:BadTokenException on Toast ,但是并不完美,這個解決方案,我在Nubia Z17S上面測試,結(jié)果無法正常顯示Toast。我無法統(tǒng)計還有多少手機會出現(xiàn)同樣的問題,未得到修復(fù)之前,使用這個方案有很大的風(fēng)險。我嘗試去修復(fù)它,可是什么信息都沒有,無奈。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容