android Java.lang.IllegalStateException: No activity 把自己坑了
程序员文章站
2023-01-28 13:56:40
android java.lang.illegalstateexception: no activity
我出现这个异常的原因比较坑,viewpager持有的firstfragment内部需要维护三...
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的地方是否合理。
上一篇: Android架构设计之MVC模式
下一篇: Struts2上传下载