【发布时间】:2015-07-29 09:57:30
【问题描述】:
我正在做一个应用程序,其中有 2 个从 SurfaceView 扩展的视图,称为 CanvasView。
我有一个左侧 CanvasView 和一个右侧 CanvasView。 这两个 CanvasView 都实例化了一个 UIThread,它从 Thread 扩展而来。 CanvasView 本身像这样传递到线程中:
public void surfaceCreated(SurfaceHolder holder) {
uiThread = new UIThread(this);
uiThread.setRunning(true);
uiThread.start();
}
在每个 CanvasView 的 onDraw() 中,我都会访问一个列表。该列表基本上由要绘制的内容列表组成,在左右画布上基本相同。
for (CharSequence line : lineList) {
...
..
}
每当我的应用需要在 lineList 中绘制项目时,它都会崩溃说 java.util.ConcurrentModificaitonException。
在两个线程之间“共享”Arraylist lineList 的正确方法是什么?
谢谢。
【问题讨论】:
标签: java android multithreading arraylist