有时在显示自定义对话框时出现错误。我无法追踪,为什么这个错误有时只出现。请任何人知道此异常何时发生。任何可能的情况?
坏令牌异常详细信息:
android.view.WindowManager$BadTokenException:
at android.view.ViewRootImpl.setView (ViewRootImpl.java:673)
at android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:301)
at android.view.WindowManagerImpl.addView (WindowManagerImpl.java:85)
at android.app.Dialog.show (Dialog.java:337)
at com.mydomain.myappname.helpers.dialogs.ApiProgressDialog.show (ApiProgressDialog.java:24)
at com.mydomain.myappname.ui.activity.SplashActivity.loadUserStatusApi (SplashActivity.java:182)
at com.mydomain.myappname.ui.activity.SplashActivity.checkIntentForMainActivity (SplashActivity.java:171)
at com.mydomain.myappname.ui.activity.SplashActivity.access$000 (SplashActivity.java:47)
at com.mydomain.myappname.ui.activity.SplashActivity$2.run (SplashActivity.java:143)
at android.os.Handler.handleCallback (Handler.java:739)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:160)
at android.app.ActivityThread.main (ActivityThread.java:5541)
at java.lang.reflect.Method.invoke (Native Method)
at java.lang.reflect.Method.invoke (Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:964)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:759)
代码初始化:
我在 SplashActivity.Class 中调用了 CustomDialog 类
Context context= SplashActivity.this;
ApiProgressDialog apiProgressDialog= new ApiProgressDialog(context);
apiProgressDialog.show();// here BadTokenException error returns on something
我你在后台线程中添加进度条,然后这个
android.view.WindowManager$BadTokenException
发生异常。如果您将类用于某些后台工作asynkTask
则不能postexecute
方法中使用progressDialog
或AleartDialog
。
如果你想做这样的事情,你可以使用AsynkLoader
类,它覆盖loadInbackground
你可以执行后台工作的方法,然后在你的主活动中实现LoaderManager.LoaderCallBacks
,这将覆盖onLoadfinish()
将在main thread
,以便你可以使用dialogbox
或ProgressBar