我编写了一个speedlimit应用程序,用于从一组平铺的xml文件中加载数据,这些文件代表0.05度的度数图。
目前,该应用程序会检查我是否已进入新的广场(使用OnLocationChanged),如果是这样,则加载数据以及周围的其他8个图块。(有一点健全性检查并且仅加载新瓷砖的数据,因此往往只加载另外3个瓷砖的数据)
无论如何,它目前在UI线程上执行此操作,因此在移动到新的方块时会有明显的暂停,并且我想使用Asynctask将其转换为背景(它还会在位图地图中加载以用于显示目的而且我'我已经将该代码移动到Asynctask中,所以我知道如何做到这一点)
我的问题是检查用于速度限制的数组(实际上是使用ArrayLists),而Asynctask可能在后台添加(以及将来版本 - 减去)它们。
我想知道是否有一种处理这种情况的“专业”:)方式。
答案 0 :(得分:1)
同步访问应该处理访问ArrayList的所有并发问题。只需使用
synchronized(myArrayList) {
// update/read/modifiy
}
在AsyncTask和UI中都有。
好的资源是stackoverflow search