首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >IllegalStateException:片段已添加,未使用try-catch捕获

IllegalStateException:片段已添加,未使用try-catch捕获
EN

Stack Overflow用户
提问于 2019-06-11 05:01:55
回答 2查看 100关注 0票数 -1

所以我有一个很棒的功能:

代码语言:javascript
复制
public static MenuPictureFragment newMenuPictureFragment(FragmentActivity fragmentActivity, String userIdParam, int containerId){
    MenuPictureFragment menuPictureFragment = (MenuPictureFragment) fragmentActivity.getSupportFragmentManager().findFragmentByTag(fragmentActivity.getString(R.string.fragment_tag_menu_picture_fragment));

    try {
        if(menuPictureFragment == null) {
            menuPictureFragment = MenuPictureFragment.newInstance(userIdParam);
        } 
        FragmentTransaction fragmentTransaction = fragmentActivity.getSupportFragmentManager().beginTransaction();
        fragmentTransaction.add(containerId, menuPictureFragment, fragmentActivity.getString(R.string.fragment_tag_menu_picture_fragment));
        fragmentTransaction.commit();
    } catch (RuntimeException re){
        //intentionelly empty
    }

    return menuPictureFragment;
}

menuPictureFragment是一个片段中的一个片段,如果我离开父片段,应用程序会在某个时候崩溃并显示一条IllegalStateException: Fragment already added消息。

这个异常不应该被捕捉到吗?添加!menuPictureFragment.isAdded()也无济于事。

如果我用fragmentTransaction.replace替换fragmentTransaction.add,异常就会消失,但menuPictureFragment只出现在开头,在循环返回之后(当异常被抛出之前),片段不再显示。

见鬼,这是怎么回事?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56533486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档