Каков наилучший способ запроса данных от работающей службы? - PullRequest
0 голосов
/ 19 июля 2011

Я работаю над приложением для воспроизведения мультимедиа на основе этого примера: Как спроектировать взаимодействие с сервисом для простого mp3-плеера?

Работает нормально, но я не уверен, как запрашивать данные у сервиса по запросу. В частности, я хочу обновить индикатор выполнения, указав положение песни, чтобы служба могла возвращать эту информацию клиентской активности. Обновление должно происходить раз в секунду.

Поскольку вещание возможно только по требованию (т. Е. Только когда видна активность), вероятно, решение проблемы не будет.

Итак, насколько я знаю, я мог либо использовать Messenger, либо связать сервис.

Что было бы наиболее подходящим в данной ситуации, т.е. с частотой обновления 1 секунда?

Дополнительно:

Насколько я знаю, служба остановится с активностью, когда она будет связана. Это, конечно, не то, что я хочу с музыкальным проигрывателем. Поэтому я попытался связать службу и отправлять команды с намерением, используя startService (). Кажется, это работает нормально, но разумный ли это подход? Причина, по которой я это делаю, заключается в том, что служба будет продолжать жить после того, как активность прекратится при запуске startService.

1 Ответ

0 голосов
/ 19 июля 2011

Если вы ищете руководство по внедрению музыкального плеера, лучше всего проверить настройку Android по умолчанию Музыкальный проигрыватель источник.

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

Добавление : еще раз проверьте исходный код.Вы заметите, что когда все действия отменяются из сервиса, нужно проверить, есть ли что-то для игры.Если есть что воспроизвести, служба не остановлена ​​, и воспроизведение продолжается, в противном случае служба останавливается (для освобождения ресурсов и ожидания времени, когда она снова понадобится).Чтобы увидеть, как все вышеперечисленное реализовано в реальной жизни, проверьте метод MusicPlaybackService onUnbind ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...