getSupportFragmentManager().getFragments().clear()当我在执行这一句的时候,
会报java.lang.IndexOutOfBoundsException这个异常,请问大神,这是为什么?
if (context.getSupportFragmentManager().getFragments() != null
&& context.getSupportFragmentManager().getFragments().size() > 0) {
context.getSupportFragmentManager().getFragments().clear();
}
我先做了一下这个判断,还是一样的
可以先把clear()去掉看看会不会报错,如果还报数组下标越界那就是你的fragments的问题,把问题分解开来 然后试试能不能解决吧
你应该把出错的StackTrace打出来,就可以看到是哪一个地方报的错了,你的这些信息看不出来
for (int i = 0; fragments != null && i < fragments.size(); i++) {
if (fragments.get(i) != null) {
transaction.remove(fragments.get(i));
}
}这样试试吧
应该是并发时,多线程不安全,clear方法应该和其他修改集合对象的方法(remove,或其他地方也调用了clear)做同步