Как отправить данные из сервиса в активность?

1

Я начинаю разработку Android. Я пытаюсь создать своего рода MusicPlayer, который использует Сервис для воспроизведения музыки. Когда я нажимаю кнопки в MainActivity, я вызываю startService с Intent, который включает в себя сигнал для действия, такой как воспроизведение, пауза, остановка и т.д.... Но я хочу отправить данные обратно из службы в работу. Например, когда текущая дорожка остановилась и начнет воспроизведение следующей, MainActivity получила имя дорожки и имя автора. Или, когда последний трек в плейлисте остановлен, кнопка "Пауза" в Activity изменилась на "Play". Мне нужно отправить данные в виде карты. Как "title: value", "play: false". Итак, что я пробовал. Сначала PendingIntent. Я создаю его в Activity и отправляю startService службой. Мне нужно указать код запроса в PendingIntent, действие sting в Intent для этого PendingIntent. Я не знаю, как его использовать. Затем я попробовал bindService. Но служба отправляет данные только в том случае, если она запрашивает действие. Других примеров я не нашел.

Какой способ проще всего отправлять данные из Сервиса в Activity?

Теги:
android-activity
connection
service
communication

2 ответа

2
Лучший ответ

Использовать мессенджер для отправки сообщения из службы в onHandleIntent(), затем получить его с помощью обработчика... см. этот учебник http://www.vogella.com/articles/AndroidServices/article.html

0

Вы можете использовать BroadcastReceiver и устанавливать в качестве воспроизведения сообщений, остановки, паузы... и т.д., вот несколько руководств, в которых используется команда brodcastreceiver:

Ссылка BrodcastReceiver 1
Ссылка на BrodcastReceiver 2
Ссылка на BrodcastReceiver 3

Ещё вопросы

Сообщество Overcoder
Наверх
Меню