ViewPager+Fragment引起的错误:No Activity
来源:互联网 发布:js兼容性问题 编辑:程序博客网 时间:2024/05/01 06:44
作者:angerlie更新于 08月20日访问(970)评论(2)
1.bug的log
java.lang.IllegalStateException: No activity
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1075)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1861)
at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1474)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:931)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1011)
at android.support.v4.view.ViewPager.populate(ViewPager.java:880)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1374)
2.出现场景
第一次启动程序可以正常运行,随便切换tab也不会有问题,第二次必崩!
3.bug出现的原理及如何修复
This seems to be a bug in the newly added support for nested fragments. Basically, the child FragmentManager ends up with a broken internal state when it is detached from the activity. A short-term workaround that fixed it for me is to add the following to onDetach() of every Fragment which you call getChildFragmentManager() on:
@Override
public void onDetach() {
super.onDetach();
1 2 3 4 5 6 7 8 910
try { Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager"); childFragmentManager.setAccessible(true); childFragmentManager.set(this, null);} catch (NoSuchFieldException e) { throw new RuntimeException(e);} catch (IllegalAccessException e) { throw new RuntimeException(e);}
}
4.是什么引起的bug
If you look at the implementation of Fragment, you'll see that when moving to the detached state, it'll reset its internal state. However, it doesn't reset mChildFragmentManager (this is a bug in the current version of the support library). This causes it to not reattach the child fragment manager when the Fragment is reattached, causing the exception you saw.
参考资料:http://stackoverflow.com/questions/15207305/getting-the-error-java-lang-illegalstateexception-activity-has-been-destroyed
- ViewPager+Fragment引起的错误:No Activity
- ViewPager+Fragment引起的错误:No Activity
- ViewPager+Fragment 或者 按钮切换Fragme引起的错误:No Activity
- ListView嵌套ViewPager+Fragment引起的Bug
- activity fragment viewpager的总结
- Fragment嵌套引起的错误
- Fragment中ViewPager嵌套Fragment引起的问题
- fragment跳转到Activity的错误,java.lang.IllegalStateException: No activity
- activity- (ViewPager)--->Fragment
- Android Activity+ViewPager(Fragment)+Fragment
- Activity ViewPager Fragment错误笔记与简单demo
- Fragment与Viewpager、Fragment与Activity的交互startActivityForResult
- 记录一次关于Activity与Fragment生命周期引起的异常
- Activity+fragment+ViewPager方法调用
- 关于Activity中的Viewpager中的Fragment的生命周期
- 在Activity内ViewPager的自动轮播+Fragment切换
- android fragment 生命周期引起的错误及思考
- Android同一Activity中不同Fragment设置不同的menu(ViewPager+Fragment)
- 查看mysql某个数据库多少张表以及占用的空间
- 状态机编程
- Uploadify3.1与Uploadify2.1.4属性详细说明
- c# 2个窗体之间传递的简单方法
- 操作记录
- ViewPager+Fragment引起的错误:No Activity
- Java NIO与IO
- 更新部署在Azure中的生产环境 - Cloud Service & Java
- setValue:forKey与setObject:forKey的差异 在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他
- c++课程设计
- 文件夹的创建与删除
- Mahout 入门构建一个推荐引擎
- C++------------typedef 函数指针类型定义
- cocos2d-x游戏开发系列教程-中国象棋00-前言