Android Отправка данных из IntentService в связанное действие - PullRequest
0 голосов
/ 09 сентября 2018

Я создал приложение для Android с сервисом намерений, связанным с действием. Я следовал за этой превосходной статьей .

Но теперь я хотел бы отправить данные из моего IntentService для обновления моего представления (я имею в виду, мою деятельность).

Контекст: я хочу создать простой обратный отсчет. Сервис отправляет «время» на активность, например, каждую минуту или секунду.

Как я могу отправлять данные из IntentService в свою активность?

В котлин, пожалуйста ... Спасибо!

1 Ответ

0 голосов
/ 09 сентября 2018

В Android есть много API, которые позволяют нам отправлять сообщения из службы в деятельность.Какой API мы должны использовать, зависит от того, выполняются ли служба и действие в одном и том же процессе.

Если они выполняются в одном и том же процессе, у вас есть 2 варианта

  • Использование локальных трансляций с LocalBroadcastManager .Это позволяет только компонентам в приложении общаться с другими.Это более безопасно и эффективно, чем отправка глобальной трансляции через систему.
  • Использование библиотеки EventBus , если вы не хотите использовать широковещательный приемник.

Если они выполняются в разных процессах, у вас есть 3 варианта

  • Использование Messenger (связан с обработчиком ), сообщения будут обрабатываться в одном потоке последовательно Handler.
  • При использовании интерфейса AIDL разница между Messenger и AIDL составляет AIDL.задачи в потоках подшивки одновременно.
  • Использование глобальных трансляций с BroadcastReceiver .
...