使用单独的线程加载数组

时间:2011-04-10 13:56:35

标签: java android

我编写了一个speedlimit应用程序,用于从一组平铺的xml文件中加载数据,这些文件代表0.05度的度数图。

目前,该应用程序会检查我是否已进入新的广场(使用OnLocationChanged),如果是这样,则加载数据以及周围的其他8个图块。(有一点健全性检查并且仅加载新瓷砖的数据,因此往往只加载另外3个瓷砖的数据)

无论如何,它目前在UI线程上执行此操作,因此在移动到新的方块时会有明显的暂停,并且我想使用Asynctask将其转换为背景(它还会在位图地图中加载以用于显示目的而且我'我已经将该代码移动到Asynctask中,所以我知道如何做到这一点)

我的问题是检查用于速度限制的数组(实际上是使用ArrayLists),而Asynctask可能在后台添加(以及将来版本 - 减去)它们。

我想知道是否有一种处理这种情况的“专业”:)方式。

1 个答案:

答案 0 :(得分:1)

同步访问应该处理访问ArrayList的所有并发问题。只需使用

synchronized(myArrayList) {
    // update/read/modifiy
}

在AsyncTask和UI中都有。

好的资源是stackoverflow search