令牌android.os.BinderProxy@e4f4f2b无效;您的活动正在进行吗?

时间:2018-10-23 12:56:59

标签: android android-studio launch

我仅在应用启动时就崩溃,并且仅在模拟器和调试中

仿真器和运行:确定

设备并运行:确定

设备和调试:确定

仿真器和调试:崩溃!

Android似乎在尝试在启动时进行Toast,由于我没有太多Toast,并且在所有Toast上都添加了断点,因此我可以排除它是我的一个。

是否可以找出Android试图显示的消息以及它指向的Activity? Logcat在崩溃发生之前没有显示任何异常。

android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@e4f4f2b is not valid; is your activity running?
        at android.view.ViewRootImpl.setView(ViewRootImpl.java:679)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
        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:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

1 个答案:

答案 0 :(得分:2)

这很可能发生,因为您试图在后台线程执行后显示对话框,而活动被破坏。

这对我有用:

if(!((Activity) context).isFinishing())
{
    //show dialog
}

使用这种做法已经有好几年了,它对我来说非常有效。