2013-09-11 3 views
0

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

Когда дело доходит до связи между услугами и другими компонентами (например, деятельностью), связанные службы в большинстве случаев описываются как решение. Но из-за моего отказа, использование связанного сервиса всегда приводит к модели запроса/ответа - действие вызывает метод в службе (запрос) и получает возвращаемое значение (ответ). Руководство Android-разработчика называет эту клиент-серверную модель.

В моем случае служба генерирует список POJO на регулярной основе, но не точно предсказуема (скажем, каждые 1,5 - 2 секунды). Каждый раз, когда это происходит, список должен быть перенесен в действие, чтобы отобразить его на экране. На мой взгляд, связанная служба не является решением здесь, так как мой сценарий не соответствует модели request/response. Фактически, активность является пассивной и не знает об услуге. Конечно, я мог бы использовать стратегию опроса вместе со связанным сервисом, но imho это не лучший подход в моем случае.

Что вы посоветуете? Я нашел решения, использующие BroadcastReceiver в своей деятельности (служба действует как отправитель), является ли это единственным способом или существуют какие-либо другие подходы? Или у меня неправильное нарушение связанных служб, и они не ограничены сценариями запроса/ответа?

редактировать:

Как я уже говорил, новый список (java.util) генерируется каждые 1.5-2 секунд от службы и немедленно перешел к деятельности. Такой список содержит 20-25 POJO, которые представляют объекты модели; они содержат 5 строк и 3 целых числа. Просто, чтобы дать вам ощущение сложности.

Является ли BroadcastReceiver адекватным для этого количества данных и частоты?

ответ

0

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

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