2012-05-24 6 views
0

Для нового проекта в Android я получаю местоположение от разных пользователей с сервера, которое затем мне нужно наложить на Google Карты в качестве наложения. Теперь это работает отлично, за исключением того, что для меня невозможно изменить местоположение для наложений периодически. Я не могу использовать таймер, потому что он выдает исключение ConcurrentModificationException, когда я удаляю и снова показываю оверлеи (что я понимаю, почему он это делает, вы не можете изменять наложения в другом потоке). Я также не могу сделать это при получении новых местоположений, потому что я использую websockets для их извлечения, и это также работает в другом потоке.Периодическое обновление внутри потока пользовательского интерфейса

Теперь я могу периодически обновлять пользовательский интерфейс внутри потока пользовательского интерфейса, поэтому наложения могут быть удалены (просто перемещение оверлей тоже будет хорошо, но это все еще требует периодического обновления, я думаю ...)?

Казалось бы, такой простой проблемой, но я искал для него в течение нескольких часов и не могу найти какое-либо решение для него ...

Любой помощь о том, как это должно быть сделано буду очень признателен!

Приветствует!

E.

ответ

0

CREAT в Handler на вашем UI потоке и сохранить его в переменной класса. Затем на вашем таймере или в потоке websocket используйте этот обработчик для отправки Runnable с кодом обновления обратно в поток пользовательского интерфейса.

+0

Спасибо, он сработал! Не могу поверить, что все было так просто! – user1413981

Смежные вопросы