BadTokenExceptionBadTokenException

2023-09-05 02:09:24 作者:十里春风不如你i

我开始一个活动,我需要出示alertdialog,所以我写了一个对话的Util类(DialogHandler中),我通过上下文DialogHandler中,第一次启动就可以了,但是当我开始第二次,它的发生的exception.what应该怎么做,PS帮我。

下面是错误报告:

  7月12号至三号:23:26.000:ERROR / AndroidRuntime(21525):致命异常:主要
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不是一个应用程序
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在android.view.ViewRoot.setView(ViewRoot.java:509)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在android.app.Dialog.show(Dialog.java:241)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在com.eoemobile.api.update.EoeSdkUpdate.onCacheFetched(EoeSdkUpdate.java:170)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在com.eoemobile.api.net.CacheManager.handleCallBackMag(CacheManager.java:362)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在com.eoemobile.api.net.CacheManager.access $ 1(CacheManager.java:358)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在com.eoemobile.api.net.CacheManager $ CallbackHandler.handleMessage(CacheManager.java:375)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在android.os.Handler.dispatchMessage(Handler.java:99)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在android.os.Looper.loop(Looper.java:123)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在android.app.ActivityThread.main(ActivityThread.java:4627)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在java.lang.reflect.Method.invokeNative(本机方法)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在java.lang.reflect.Method.invoke(Method.java:521)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
7月12日至三日:23:26.000:ERROR / AndroidRuntime(21525):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

您无法显示通过一个背景下,是不是一个活动的应用程序窗口/对话框。请请注意,每次启动一个对话框,它得到正确的上下文。

i start a activity,i need to show a alertdialog,so i write a dialog util class(dialoghandler) ,i pass the context to the dialoghandler ,the first start is ok,but when i start the second ,it happend the exception.what should i do,ps help me.

here is the bug report:

12-03 07:23:26.000: ERROR/AndroidRuntime(21525): FATAL EXCEPTION: main
12-03 07:23:26.000: ERROR/AndroidRuntime(21525): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at android.view.ViewRoot.setView(ViewRoot.java:509)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at android.app.Dialog.show(Dialog.java:241)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at com.eoemobile.api.update.EoeSdkUpdate.onCacheFetched(EoeSdkUpdate.java:170)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at com.eoemobile.api.net.CacheManager.handleCallBackMag(CacheManager.java:362)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at com.eoemobile.api.net.CacheManager.access$1(CacheManager.java:358)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at com.eoemobile.api.net.CacheManager$CallbackHandler.handleMessage(CacheManager.java:375)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at android.os.Looper.loop(Looper.java:123)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at android.app.ActivityThread.main(ActivityThread.java:4627)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at java.lang.reflect.Method.invokeNative(Native Method)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at java.lang.reflect.Method.invoke(Method.java:521)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-03 07:23:26.000: ERROR/AndroidRuntime(21525):     at dalvik.system.NativeStart.main(Native Method)

解决方案

You cannot display an application window/dialog through a Context that is not an Activity. Check please that every time you start a dialog it gets correct Context.