Я делаю приложение, в котором поток всегда прослушивает определенный адрес/порт UDP для пользовательского протокола обмена сообщениями. Они должны быть переданы во фрагменты, которые соответствующим образом изменяют пользовательский интерфейс. Одним из случаев является обновление позиции маркера в Maps API версии 2.
Поток, прослушивающий UDP, является устаревшим, я должен реализовать один метод интерфейса, который будет вызываться, когда приходит сообщение.
UDP ---> устаревший прослушиватель ---> метод интерфейса ---> ????? ---> Фрагменты пользовательского интерфейса
Что я должен использовать для ????? ? Я изучил:
Службы. У меня сложилось впечатление, что это перевернутая концепция, поскольку фрагменты вызывают службу, и мне нужно, чтобы фрагменты вызывались только при поступлении сообщения.
ContentProvider — не очень подходит для структурированных данных.
Обработчик - не понял, как структурировать код для его использования, поскольку я не могу передать обработчик потоку, прослушивающему UDP, и должен учитывать метод интерфейса.
Бонусные баллы, если есть способ вызывать фрагмент только при поступлении сообщений определенного типа. Каждый фрагмент интересует только подмножество типов сообщений в протоколе.