0

对于 Android 中的一个新项目,我从服务器接收来自不同用户的位置,然后我需要将其作为覆盖放在谷歌地图上。现在这一切都很完美,但我似乎不可能定期更改叠加层的位置。我不能使用计时器,因为当我再次删除并显示覆盖时它会抛出 ConcurrentModificationException (我理解它为什么这样做,你不能在另一个线程中修改覆盖)。接收新位置时我也不能这样做,因为我使用 websockets 来检索它们,这也适用于不同的线程。

现在有什么方法可以让我在 UI 线程中定期更新 UI,这样就可以删除覆盖层(只需移动覆盖层也可以,但我猜这仍然需要定期更新......)?

这似乎是一个如此简单的问题,但我一直在寻找它几个小时,找不到任何解决方案......

任何有关如何完成此操作的帮助将不胜感激!

问候!

E.

4

1 回答 1

0

在您的 UI 线程上创建一个Handler并将其存储在一个类变量中。然后,在您的计时器上,或在您的 websocket 线程中,使用该处理程序Runnable将更新代码发布回 UI 线程。

于 2012-05-24T03:13:48.867 回答