Как остановить воспроизведение звука при нажатии кнопки «Домой»?

Мое приложение всегда запускает фоновый звук в сервисах. Когда я нажимаю кнопку «Домой», управление возвращается на главный экран, но звук продолжает воспроизводиться.

Итак, как я могу остановить воспроизведение звука, когда я нажимаю кнопку «Домой»?


person SkilledCoder    schedule 08.06.2011    source источник
comment
В чем конкретно проблема? Большинство аудиоплееров хотят продолжать воспроизведение после того, как пользователь покинет приложение.   -  person CommonsWare    schedule 09.06.2011
comment
@CommonsWare На самом деле я начал писать противоположный ответ (как сохранить его воспроизведение), пока не прочитал вопрос в третий раз.   -  person Aleadam    schedule 09.06.2011


Ответы (3)


Если звук воспроизводится Service, то на него не повлияет уничтожение Activity. Это именно цель разделения его на службу.

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

Дополнительные сведения см. в руководстве для разработчиков: http://developer.android.com/guide/topics/fundamentals/bound-services.html

person Aleadam    schedule 08.06.2011
comment
Я делаю что-то подобное, и я сделал аудио как службу, как мне остановить службу при нажатии кнопки «Домой»? - person shifter; 26.09.2015
comment
Где в деятельности - person Ruchir Baronia; 17.12.2015

Ваша активность может переопределить onPause() и/или onWindowFocusChanged(), чтобы определить, что вы больше не работаете или находитесь поверх экрана. Это хорошие места для прекращения воспроизведения звука, который не предназначен для воспроизведения, если действие не видно, вам просто нужно быть осторожным при переключении на другие действия в вашем приложении.

person mah    schedule 08.06.2011
comment
Я хочу воспроизводить звук в фоновом режиме во всем приложении. Но когда я нажимаю кнопку «Домой», я хочу остановить службу. Я также хочу, чтобы при переключении между действиями звук продолжал воспроизводиться. - person SkilledCoder; 09.06.2011

Переопределить onPause() и возобновить его на onResume().

Почему вы включаете музыку на Service?

В этом случае используйте bindService() и unbindService(). Таким образом, Служба может ответить на onDestroy(), когда Activity вызовет unbindService().

person Tek Yin    schedule 09.06.2011