Android アプリケーションに問題があります。
リストまたはシェイプを常に反復処理し、それらの位置を更新し、リストから項目を削除するスレッドがあります。スレッドの while ループの最後で、postInvalidate() を呼び出して再描画を促します。
ArrayList への変更が行われるコードを次に示します。
Iterator<Shape> iterator = this.myList.iterator();
while (iterator.hasNext()) {
Shape nextShape = iterator.next();
nextShape.move();
if(condition) {
iterator.remove()
}
}
onDraw メソッドは、for each ループを使用して、これらの各アイテムを描画します。イテレータを介してリストを変更するだけであるにもかかわらず、onDraw メソッドで同時変更を取得しています。CopyOnWriteArrayList と Collections.synchronized を同じ結果で試しました。
どんな助けでも大歓迎です。