DialogFragment 导致 ANR

DialogFragment causing ANR

我在真实设备上遇到 DialogFragment 的一些奇怪问题。三星盖乐世 Note 4.

当我尝试打开一个对话框时,应用程序进入了一个无限循环(来自系统的东西)并在一段时间后给出了 ANR。一切都被封锁了。没有日志。在调试中,断点在对话框的显示方法之后。

这是我用来显示对话框的方法:

public void openLivecastMenuDialog() {
        MenuDialog menuDialog = (MenuDialog) getSupportFragmentManager().findFragmentByTag(MENU_STORY_TAG);

        if (null == menuDialog) {
            // Menu fragment not found in the fragment manager, initialize it
            menuDialog = MenuDialog.newInstance(MenuType.MENU_STORY, currentTag);
        }

        isCoverChanged = false;

        // Show the menu fragment
        menuDialog.show(getSupportFragmentManager(), MENU_STORY_TAG);
    }

MenuDialog 是一个 "v4.app.DialogFragment"。

什么会造成这种行为?

LE:

不是因为 DialogFragment。这是因为在创建对话框时调用了 Google Analytics。 该死的服务。

您可以添加在设备 dumpsys anr 中生成的 logcat 文件吗?

您也可以使用 cmd 行来捕获 logcat。 运行 下面的命令然后重现 anr

adb shell logcat -v threadtime > filename.txt

不是因为 DialogFragment。这是因为在创建对话框时调用了 Google Analytics。该死的服务。