Во-первых, я могу сказать, что я знаю, что есть много ресурсов, связанных с обменом данными между службами и действиями, я также прочитал часть связанных с обслуживанием части руководства разработчика Android , Тем не менее, я по-прежнему не уверен в лучшем подходе в моем случае.Android: перенос вычисленных результатов из службы на активность
Когда дело доходит до связи между услугами и другими компонентами (например, деятельностью), связанные службы в большинстве случаев описываются как решение. Но из-за моего отказа, использование связанного сервиса всегда приводит к модели запроса/ответа - действие вызывает метод в службе (запрос) и получает возвращаемое значение (ответ). Руководство Android-разработчика называет эту клиент-серверную модель.
В моем случае служба генерирует список POJO на регулярной основе, но не точно предсказуема (скажем, каждые 1,5 - 2 секунды). Каждый раз, когда это происходит, список должен быть перенесен в действие, чтобы отобразить его на экране. На мой взгляд, связанная служба не является решением здесь, так как мой сценарий не соответствует модели request/response. Фактически, активность является пассивной и не знает об услуге. Конечно, я мог бы использовать стратегию опроса вместе со связанным сервисом, но imho это не лучший подход в моем случае.
Что вы посоветуете? Я нашел решения, использующие BroadcastReceiver в своей деятельности (служба действует как отправитель), является ли это единственным способом или существуют какие-либо другие подходы? Или у меня неправильное нарушение связанных служб, и они не ограничены сценариями запроса/ответа?
редактировать:
Как я уже говорил, новый список (java.util) генерируется каждые 1.5-2 секунд от службы и немедленно перешел к деятельности. Такой список содержит 20-25 POJO, которые представляют объекты модели; они содержат 5 строк и 3 целых числа. Просто, чтобы дать вам ощущение сложности.
Является ли BroadcastReceiver адекватным для этого количества данных и частоты?