当前位置: 首页 > 知识库问答 >
问题:

BadTokenException不清楚原因

宰父霖
2023-03-14

我有一个badtokenexception的报告,尽管我尝试了任何事情,但我无法复制它,对我来说也不清楚它是如何发生的。

BadTokenException(@Android.view.viewrootimpl:setView:575)通过(@Android.view.WindowmanagerGlobal:AddView:272)完整跟踪:Android.view.Windowmanager$BadTokenException:无法添加窗口-令牌Android.os.BinderProxy@E5346B6无效;你的活动在进行吗?在Android.view.viewRootimpl.setView(ViewRootimpl.java:575),在Android.view.windowmanagerlobal.addView(Windowmanagerlobal.java:272),在Android.view.windowmanagerlobal.addView(Windowmanagerlobal.java:272),在Android.view.windowmanagerimpl.addView(Windowmanagerimpl.java:69),在Android.app.dialog.show(dialog.java:306),在port.v4.app.fragmentmanagerimpl.movefragmenttoExpectedState(SourceFile:1740)在Android.support.v4.app.fragmentmanagerimpl.moveToState(SourceFile:1809)在Android.support.v4.app.fragmentmanagerimpl.dispatchStateChange(SourceFile:3217)在Android.support.v4.app.fragmentmanagerimpl.dispatchStateChange(SourceFile:3176)在在Android.a的roid.support.v7.app.appCompatactivity.onstart(SourceFile:177)在Android.app.activity.performstart(activity.java:1220)在Android.app.activity.performstart(activity.java:5993)在Android.app.activitythread.handlewindowvisibility(activity.java:6050)在Android.app.activitythread.java:3453)在Android.app.activitythread.access$1200(activitythread.java:148)在Android.app.activitythread.access$H.HandleMessage(.loop(looper.java:135),android.app.activitythread.main(activitythread.java:5272),java.lang.reflect.Method.invoke(原生方法),java.lang.reflect.Method.invoke(Method.java:372),com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:704),com.android.internal.os.zygoteinit.main

我有一个活动,显示一个对话框时,开始,通常它的工作,只有少数崩溃是在分析报告。

public class DialogFragmentWrapperActivity extends AppCompatActivity {

    /** Stores an instance of the dialog to be shown. */
    private CustomDialogFragment mCustomDialog = null;

    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String fragmentId = "DialogFragmentWrapperActivity" + String.valueOf(this.hashCode());
        if ((savedInstanceState != null) && savedInstanceState.containsKey("id")) {
            fragmentId = savedInstanceState.getString("id");
        }
        mCustomDialog = CustomDialogFragment.newInstance(fragmentId);

        final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.add(mCustomDialog, fragmentId);
        ft.commit();
    }

你有什么提示badtokenexception是如何发生的吗?我唯一能想到的是,如果活动在调用ft.commit()之前关闭,所以我以前尝试调用finish(),但这并没有改变任何事情。一些想法?

共有1个答案

昌正奇
2023-03-14

您可以使用isfinising()方法检查活动是否正在完成。

public class DialogFragmentWrapperActivity extends AppCompatActivity {

    /** Stores an instance of the dialog to be shown. */
    private CustomDialogFragment mCustomDialog = null;

    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String fragmentId = "DialogFragmentWrapperActivity" + String.valueOf(this.hashCode());
        if ((savedInstanceState != null) && savedInstanceState.containsKey("id")) {
            fragmentId = savedInstanceState.getString("id");
        }
        mCustomDialog = CustomDialogFragment.newInstance(fragmentId);

        final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.add(mCustomDialog, fragmentId);
        if(!isFinishing()){
           ft.commit();
        }
    }
 类似资料:
  • 嗨,我正在学习Selenium&我不太清楚上面两个函数是如何工作的:问题陈述: 我有一个练习作业:转到http://the-internet.herokuapp.com/ 单击链接>多个窗口一个窗口打开>单击>>单击此处另一个窗口打开>>从该窗口获取文本并打印,然后返回http://the-internet.herokuapp.com/Windows并打印文本。 流程:http://the-int

  • 问题内容: 我正在与我合作,却遇到一些难以解释或理解的行为。 我有几个独立的S。 其中之一看起来像这样: 我的问题/问题是,每当按下上述按钮时,我都会看到其他不相关的bean成员getter(属于其他形式的一部分)被调用。(通过记录) 任何获取方法都没有业务逻辑,但是我 想 了解其原因。通过打印,我确保确实是调用它们的人。 您如何建议我遵循以了解为什么要调用它们?可能是什么原因? 谢谢!本 更新

  • 我已经开始做一个JavaFX项目,并且我已经按照这个问题中的设置说明进行了操作:IntelliJ无法使用VSCode识别JavaFX11和OpenJDK11。我用的是苹果笔记本电脑。 到了最后一部分,我要用settings.json和launch.json设置东西。我尽可能严格地按照说明操作,但错误:

  • 我试图理解spark 3中的新特性:动态分区修剪。 看看这个测试: https://github.com/apache/spark/blob/master/sql/core/src/test/scala/org/apache/spark/sql/DynamicPartitionPruningSuite.scala#L257 我不明白为什么它是动态的并且要经典的修剪? 谢谢

  • 当我尝试重新绘制透明窗口并在其上绘制矩形时,之前的矩形将保留。目标是通过单击并移动鼠标在屏幕上选择一个区域。如果你移动鼠标一会儿,它会看起来像这样 通过去除透明度,效果很好。 我尝试了在Stack Overflow上找到的关于这个主题的所有内容,但我无法让它在Windows和Linux上运行。 谢谢:)

  • JavaScript中有一些看起来像却又不是数组的对象,唤作类数组。 本文旨在探究类数组的确切含义和高效的使用方式。 类数组 一个类数组对象: 具有:指向对象元素的数字索引下标以及 length 属性告诉我们对象的元素个数 不具有:诸如 push 、 forEach 以及 indexOf 等数组对象具有的方法 两个典型的类数组的例子是:DOM方法 document.getElementsByCla