Этот вопрос относится к existing question Я спросил. Я, однако, задаю новый вопрос вместо ответа на другой вопрос.Android Multiple Handlers Design
«У меня более одного обработчика в действии». Зачем? Если вам не нужен сложный метод
handleMessage()
, используйтеpost()
(наHandler
илиView
), чтобы разбить логику на отдельнуюRunnables
. НесколькоHandlers
заставляет меня нервничать. - CommonsWare
Я новичок в Android. Мой вопрос: есть ли у нескольких обработчиков в одном действии плохой дизайн?
Вот эскиз моей текущей реализации.
У меня есть mapActivity
, который создает поток данных (UDP-сокет, который прослушивает данные). Мой первый обработчик отвечает за отправку данных из потока данных в активность.
На карте У меня есть куча «динамических» маркеров, которые часто бывают refreshed
. Некоторые из этих маркеров являются видеомаркерами, то есть, если пользователь нажимает на маркер видео, я добавляю ViewView
, который расширяет android.opengl.GLSurfaceView
до моей активности на карте и отображает видео на этом новом видео. Я использую свой второй обработчик для отправки информации о маркере, который пользователь нажал на ItemizedOverlay
onTap(int index)
.
Пользователь может закрыть вид видео, нажав на просмотр видео. Для этого я использую свой третий обработчик.
Буду признателен, если люди скажут мне, что не так с этим подходом, и предложите лучшие способы его реализации.
Спасибо.
Но ... кроме того, что это плохое представление, что произойдет, если у вас есть несколько обработчиков? Они оба получают все сообщения, только первые объявленные, только второй? Думаю, и то, и другое, но если вы можете дать мне ответ без меня, чтобы его закодировать, я был бы счастлив! –
@ type-a1pha: Ничего из вышеперечисленного. Часть протокола для отправки «сообщения» указывает, какой «обработчик» должен быть получателем сообщения. Следовательно, никогда не возникает вопроса о том, какой «Handler» получает сообщение, независимо от количества объектов «Handler», которые могут быть выдающимися. – CommonsWare
Да, право ... стыдно за меня! –