从数组列表中删除项目时应用程序崩溃
app crash when deleting item from array list
当我尝试从数组列表中删除对象时,我的应用程序崩溃了:
for (ColouredPaths p : mTouches) {
if(erase){
if(p!=null)
{ mTouches.remove(p);}
}
为什么会发生这种情况以及如何解决?
如果您得到 ConcurrentException
,这意味着您正在遍历您正在修改的列表。在 ArrayLists 中,你不能这样做。尝试使用这样的 Queue
,而不是 ArrayList
:
Queue<ColouredPaths> mTouches = new ConcurrentLinkedQueue<>();
你可以用同样的方式循环它,但它应该不会再崩溃了。
当我尝试从数组列表中删除对象时,我的应用程序崩溃了:
for (ColouredPaths p : mTouches) {
if(erase){
if(p!=null)
{ mTouches.remove(p);}
}
为什么会发生这种情况以及如何解决?
如果您得到 ConcurrentException
,这意味着您正在遍历您正在修改的列表。在 ArrayLists 中,你不能这样做。尝试使用这样的 Queue
,而不是 ArrayList
:
Queue<ColouredPaths> mTouches = new ConcurrentLinkedQueue<>();
你可以用同样的方式循环它,但它应该不会再崩溃了。