0

当我尝试从数组列表中删除对象时,我的应用程序崩溃:

for (ColouredPaths p : mTouches) {
            if(erase){
                if(p!=null)
                {  mTouches.remove(p);}

            }

为什么会发生这种情况以及如何解决?

4

1 回答 1

0

如果你得到一个ConcurrentException,这意味着你正在循环一个你正在修改的列表。在 ArrayLists 中,您不能这样做。尝试使用Queue这样的,而不是ArrayList

Queue<ColouredPaths> mTouches = new ConcurrentLinkedQueue<>();

你可以用同样的方式循环它,但它不应该再崩溃了。

于 2017-06-14T03:44:06.320 回答