2017-06-14 54 views
0

我的應用程序崩潰時,我嘗試從數組列表中刪除對象:應用程序崩潰從數組列表中刪除項目時

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

      } 

爲什麼發生這種情況,以及如何o修復?

+0

@K。 Sopheak這不是測試用戶構建這是它 – rgl

+0

@ K.Sopheak這不是測試用戶構建這是它 – rgl

+1

不,這是一個Java'Collections'行爲。我在我的回答中解釋了它。 –

回答

0

如果你得到一個ConcurrentException,這意味着你正在循環一個你正在修改的列表。在ArrayLists中,你不能這樣做。嘗試使用Queue這個樣子,而不是ArrayList

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

你可以通過它循環以同樣的方式,但應該不會再崩潰。

+0

謝謝你是對的 – rgl

+0

@rgl這是否解決了它?我使用了'ConcurrentLinkedQueue'一段時間,他們似乎很好。 –

+0

是的,它運作良好 – rgl

相關問題