Как я могу остановить звук в Android при нажатии кнопки «Домой»

У меня есть приложение и музыка во всех действиях моего приложения. Я бы хотел, чтобы, когда пользователь нажимал кнопку «Домой», звук останавливался, как и во всех играх, которые вы можете загрузить с рынка Android.

Как я могу это сделать?

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

<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.HOME" /> 

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

P.S.

  1. инфраструктура Android не позволяет поймать домашний ключ в событии KeyDown
  2. платформа Android не позволяет поймать намерение, запущенное, когда пользователь нажимает кнопку «Домой»

person user626920    schedule 21.02.2011    source источник


Ответы (1)


Вы можете попробовать поместить код в метод onUserLeaveHint(), он принадлежит Activity и вызывается при нажатии кнопки Home.

person ferostar    schedule 21.02.2011
comment
А музыка не остановится, если он играет в игру и на телефон поступает входящий звонок? - person Blundell; 21.02.2011
comment
В этом случае музыка останавливается, если приложения переходят в фоновый режим, в любом случае. @ user626920 не хочет помещать код в onResume() и onPause() из-за звукового разрыва между действиями, поэтому я думаю, что это именно то, что он хочет. - person ferostar; 21.02.2011
comment
метод onUserLeaveHint() вызывается, когда я перехожу от одного действия к другому и когда я нажимаю кнопку «Домой» - person user626920; 21.02.2011
comment
метод onUserLeaveHint вызывается, когда я перехожу от одного действия к другому и когда я нажимаю кнопку «Домой». Так что seretur ваше решение не работает - person user626920; 21.02.2011