当前位置: 移动技术网 > IT编程>移动开发>Android > android Java.lang.IllegalStateException: No activity 把自己坑了

android Java.lang.IllegalStateException: No activity 把自己坑了

2018年10月28日  | 移动技术网IT编程  | 我要评论

愈浩明,来力杯台球宝贝,李敏镐6.15

android java.lang.illegalstateexception: no activity

我出现这个异常的原因比较坑,viewpager持有的firstfragment内部需要维护三个fragment,所以内部也需要用到fragmentmanager,用于在setuservisiblehint方法里获取了fragmentmanager的实例,导致上级fragment的mchildfragmentmanager 这个实例被赋值,进入了不改进入的分发逻辑。

fragment.java

@callsuper
 public void oncreate(@nullable bundle savedinstancestate) {
  mcalled = true;
  restorechildfragmentstate(savedinstancestate);
  if (mchildfragmentmanager != null
 && !mchildfragmentmanager.isstateatleast(fragment.created)) {
mchildfragmentmanager.dispatchcreate();
  }
 }

而这个mchildfragmentmanager没有绑定对应的宿主host所以报了crash

fragmentmanager.java

void movetostate(int newstate, boolean always) {
  if (mhost == null && newstate != fragment.initializing) {
throw new illegalstateexception("no activity");
  }

  if (!always && newstate == mcurstate) {
return;
  }

  mcurstate = newstate;

遇到同样问题的同学可以看看自己获取fragmentmanager的地方是否合理。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网