我在显示自定义对话框时有时会收到错误。我无法追踪,为什么这个错误有时只会出现。任何人都知道这个例外何时发生。任何可能的情况?
BadTokenException详细信息:
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
答案 0 :(得分:-1)
我在后台线程中添加进度条然后这个
android.view.WindowManager$BadTokenException
发生异常。如果您使用asynkTask
课程进行某些后台工作,则无法在progressDialog
方法中使用AleartDialog
或postexecute
。
如果您想要执行此类操作,可以使用AsynkLoader
类覆盖loadInbackground
方法,在该方法中您可以执行后台工作,然后在主活动中实施LoaderManager.LoaderCallBacks
onLoadfinish()
中的main thread
因此您可以使用dialogbox
或ProgressBar