【问题标题】:android.view.WindowManager$BadTokenException on custom dialog自定义对话框上的 android.view.WindowManager$BadTokenException
【发布时间】:2017-11-09 19:50:53
【问题描述】:

我的应用程序在特定的 android 版本和设备(Android 5.1 的 VIVO 和 Android 7.1 的一加一)上崩溃并出现以下错误堆栈

*_ android.view.WindowManager$BadTokenException:
  at android.view.ViewRootImpl.setView (ViewRootImpl.java:679)
  at android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:342)
  at android.view.WindowManagerImpl.addView (WindowManagerImpl.java:94)
  at android.app.Dialog.show (Dialog.java:329)
  at com.yathirajjp.brainstimuli.QuickMath.showCustomDialog (QuickMath.java:193)
  at com.yathirajjp.brainstimuli.QuickMath$3.onFinish (QuickMath.java:252)
  at android.os.CountDownTimer$1.handleMessage (CountDownTimer.java:127)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6186)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:889)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:779) _*

QuickMath.java 中的代码 sn-p 如下

final Dialog customDialog = new Dialog(**this**);
customDialog.setContentView(R.layout.custom_dialog_layout);

waitTimer.cancel();  // Cancelling the CountDownTimer before calling the show custom dialog

customDialog.show();

我怀疑 customDialog 的初始化。我将上下文用作“this”是否正确?

【问题讨论】:

  • 如果您在点击监听器中显示对话框,那么您需要使用YourActivity.this。如果没有,它应该可以按预期工作。
  • 非常感谢@TrickySolutions。它有效。

标签: android exception window-managers customdialog


【解决方案1】:

android.view.WindowManager$BadTokenException:

您应该拨打 YourActivity.this 而不是 this

不要

final Dialog customDialog = new Dialog(this);

final Dialog customDialog = new Dialog(QuickMath.this);

【讨论】:

  • 请接受我对延迟回复的诚挚歉意。我对堆栈溢出还是很陌生。我不确定滴答声标记在哪里。 :)。
  • 在进行了建议的更改后,现在在新设备中再次报告了相同的问题。有什么帮助吗?
  • 谁能解释它为什么会这样工作? thisClass.this 有什么区别?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2017-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多