关闭

java.lang.IllegalStateException: No activity

标签: exception
36人阅读 评论(0) 收藏 举报
分类:

出现场景

第一次启动程序可以正常运行,随便切换tab也不会有问题,第二次必崩

引起BUG的原因是
当fragment移动到分离状态的时候,会重置内部状态,但是并没有重置子类管理器(这是类库当前版本的错误),这会让fragment复位之后使它和activity不连接导致一个exception
解决办法是
添加 下面的代码对于每一个fragment在onDetach()方法里
    public void onDetach() {  
        super.onDetach();  
        try {  
            Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");  
            childFragmentManager.setAccessible(true);  
            childFragmentManager.set(thisnull);  
        } catch (NoSuchFieldException e) {  
            throw new RuntimeException(e);  
        } catch (IllegalAccessException e) {  
            throw new RuntimeException(e);  
        }  
    } 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:95次
    • 积分:22
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:1篇
    • 译文:1篇
    • 评论:0条
    文章分类
    文章存档