Java 使用独立线程加载数组

Java 使用独立线程加载数组,java,android,Java,Android,我已经编写了一个speedlimit应用程序,它从一组表示0.05度地图的平铺xml文件加载数据 目前,该应用程序检查我是否已移动到一个新的方块(使用OnLocationChanged),如果是,则加载该方块和周围其他8个方块的数据。(进行了一点合理性检查,仅加载新方块的数据,因此通常只加载另外3个方块的数据) 无论如何,它目前在UI线程上执行此操作,因此在移动到新的方块时会有一个明显的停顿,我想使用Asynctask将其移到后台(出于显示目的,它还会加载位图映射,我已经将代码移到Asyncta

我已经编写了一个speedlimit应用程序,它从一组表示0.05度地图的平铺xml文件加载数据

目前,该应用程序检查我是否已移动到一个新的方块(使用OnLocationChanged),如果是,则加载该方块和周围其他8个方块的数据。(进行了一点合理性检查,仅加载新方块的数据,因此通常只加载另外3个方块的数据)

无论如何,它目前在UI线程上执行此操作,因此在移动到新的方块时会有一个明显的停顿,我想使用Asynctask将其移到后台(出于显示目的,它还会加载位图映射,我已经将代码移到Asynctask中,所以我知道如何执行此操作)

我的问题是检查用于速度限制的数组(实际上使用ArrayList),而Asynctask可能在后台添加(以及在将来的版本中进行减法)


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

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

synchronized(myArrayList) {
    // update/read/modifiy
}
在异步任务和用户界面中


很好的资源是

谢谢-你有没有关于android synchronized的更多信息的链接?Google搜索android synchronized并没有让我走多远:(synchronized不是android特有的,它是一个普通的java功能。编辑了我的答案…天哪,它满是星星!)