我仅在应用启动时就崩溃,并且仅在模拟器和调试中
仿真器和运行:确定
设备并运行:确定
设备和调试:确定
仿真器和调试:崩溃!
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)
答案 0 :(得分:2)
这很可能发生,因为您试图在后台线程执行后显示对话框,而活动被破坏。
这对我有用:
if(!((Activity) context).isFinishing())
{
//show dialog
}
使用这种做法已经有好几年了,它对我来说非常有效。