这是什么错误...我还没有在stackoverflow社区中找到关于此错误的任何讨论详解: -
10-18 23:53:11.613: ERROR/AndroidRuntime(3197): Uncaught handler: thread main exiting due to uncaught exception
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@45d459c0 is not valid; is your activity running?
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.ViewRoot.setView(ViewRoot.java:468)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.Window$LocalWindowManager.addView(Window.java:424)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.app.Dialog.show(Dialog.java:239)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at com.vishal.contacte.Locationlistener$MyLocationListener.onLocationChanged(Locationlistener.java:86)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:179)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:112)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:128)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.os.Handler.dispatchMessage(Handler.java:99)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.os.Looper.loop(Looper.java:123)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at java.lang.reflect.Method.invokeNative(Native Method)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at java.lang.reflect.Method.invoke(Method.java:521)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
Dis*_*Dev 320
这很有可能发生,因为您正在尝试在执行后台线程后显示一个对话框,而Activity正在被销毁.
当我试图显示对话时,当调用对话框的活动由于某种原因而完成时,我看到我的一些应用程序偶尔会报告此错误.这是为我解决的问题:
if(!((Activity) context).isFinishing())
{
//show dialog
}
Run Code Online (Sandbox Code Playgroud)
我已经使用它来解决旧版本Android上的问题已经好几年了,并且从那时起就没有看到崩溃.
小智 10
我遇到了同样的问题,并使用上面DiscDev提出的代码进行了如下的微小更改:
if (!MainActivity.this.isFinishing()){
alertDialog.show();
}
Run Code Online (Sandbox Code Playgroud)
小智 6
如果对话框因为线程而出现这个问题,你应该像这样在 UI 线程上运行它:-
runOnUiThread(new Runnable() {
@Override
public void run() {
dialog.show();
}
});
Run Code Online (Sandbox Code Playgroud)
当您显示不再存在的上下文的对话框时,会发生此错误。
在调用之前.show()检查活动/上下文是否未完成
if (!(context instanceof Activity && ((Activity) context).isFinishing())) {
alert.show();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83867 次 |
| 最近记录: |