РЕДАКТИРОВАТЬ - НАЙДЕНО ЛЕГКОЕ РЕШЕНИЕ ИЗ 5-10 СТРОК !!! СМОТРИ МОЙ СОБСТВЕННЫЙ ОТВЕТ НИЖЕ !!! УРА!!!!!!!!!
Я искал 5 часов, десятки сообщений ТАК, ответов нет, и это кажется самой простой и очевидной долбанной вещью !!!
РЕДАКТИРОВАТЬ - кстати, это НЕ приложение для музыкального плеера, это просто приложение для просмотра изображений и текста, открывает несколько действий, таких как меню и о нем, просмотр различных типов изображений и т. Д. Я просто хочу воспроизвести простую фоновую музыку, пока смотрю через изображения и текст, почему это так сложно?
еще одно РЕДАКТИРОВАНИЕ - кажется, главный вопрос действительно таков: "ПОЧЕМУ НАЖАТИЕ КНОПКИ HOME НЕ ВЫЗЫВАЕТ onPause или onStop ???" -так я могу узнать, когда остановить медиаплеер? и как игры, которые я загружаю на рынке, достигают этого ???
запускается домашнее действие
затем
запускается медиаплеер:
player = MediaPlayer.create(this, R.raw.idil);
player.setLooping(true);
player.setVolume(100,100);
player.start();
Игрок объявлен вне onCreate
MediaPlayer player;
Когда другие действия открываются, фоновая музыка не прерывается, и это ХОРОШО, это то, что я хочу.
Теперь, когда я закончил работу с моим очень простым приложением (которое показывает только некоторые картинки и тексты в различных действиях), я либо нажимаю НАЗАД несколько раз, чтобы перейти к домашнему / исходному действию, а затем еще раз, чтобы «выйти», ИЛИ я просто нажимаю «домой», чтобы «выйти», потому что я ЗАВЕРШЕН с этим приложением и мне больше не нужно слушать эту музыку.
ВАРИАНТ 1
Вызвать игрока.stop ();
в переопределении onPause
, это не то, что я хочу, потому что фоновая музыка останавливается, когда я выхожу из дома для других действий, таких как 'меню' и 'о ', Я также не знаю, что использовать для паузы и возобновления при открытии новых занятий, потому что я не хочу, чтобы красивая фоновая музыка «пропускалась» или прерывалась.
ВАРИАНТ 2
@Override
protected void onPause() {
super.onPause();
if (this.isFinishing()){
player.stop();
}
}
Это лучше, потому что фоновая музыка не прерывается между занятиями, и когда я нажимаю НАЗАД из своего домашнего занятия, музыка прекращается, и я могу продолжать пользоваться своим забавным телефоном на Android в тишине и покое, , но проблема в том, что при нажатии кнопки HOME для «выхода» из моего приложения эта надоедливая фоновая музыка продолжает воспроизводиться.
ODDLY
@Override
protected void onStop() {
super.onStop();
if (this.isFinishing()){
player.stop();
}
}
Действует так же, как onPause (и я понимаю реальные различия)
РЕДАКТИРОВАТЬ - ТАКЖЕ, похоже, не имеет значения, если player.stop (); находится выше или ниже super.onStop (); но это влияет на то, что я в любом случае не вижу, по-прежнему нет РЕШЕНИЯ: (
ooooo
ooooo
EDIT- ДРУГОЙ ВАРИАНТ- НО НЕ РАБОТАЕТ
public void onUserLeaveHint() {
player.stop();
super.onUserLeaveHint();
}
это останавливает музыку, когда я нажимаю HOME, но также останавливает его, когда я начинаю новую деятельность: (
РЕДАКТИРОВАТЬ - ОЧЕНЬ ОБЫЧНАЯ РАБОТА ВОКРУГ, Я ВИДЕЛ НЕСКОЛЬКО МЕСТ, но, кажется, нелепо делать:
необходимо вести подсчет количества операций, которые были открыты и закрыты (onResume и onPause, вероятно, были бы лучше всего, но это не имеет значения), и когда это количество достигнет 0, остановите фоновую музыку.ДА, это довольно просто, но почему я должен делать это программно, на самом деле САМЫЙ БОЛЬШОЙ ВОПРОС ДЛЯ ЭТОГО ЗАПИСИ:
Чтобы вставить его в onDestroy не вариант, потому что onDestroy вызывается только тогда, когда системе не хватает памяти, или вы принудительно закрываете приложение, и это хорошо задокументировано.
Переопределение кнопки HOME также не является вариантом, поскольку я читал, что это «невозможно», и я читал, что это «крайне неодобрительно», в любом случае я избегаю этого.
Я не вижу необходимости в создании СЛУЖБЫ, и даже если бы я это сделал, когда бы я остановил службу, похоже, у меня была бы та же проблема.
ТЕПЕРЬ ЭТО ТО, что меня совершенно взорвало, каждая игра и каждое приложение, которое я загрузил с Android Market, имеют очень красивую фоновую музыку, и когда я нажимаю BACK или HOME, потому что я закончил играть в эту прекрасную игру , музыка останавливается , не продолжая играть в фоновом режиме.
Я очень расстроен и чувствую, что мне не хватает чего-то очень простого, потому что это одна из самых основных проблем жизненного цикла любого приложения.
Я потратил месяц на чтение каждой страницы сайта developer.android.com, включая Руководство разработчика, учебные пособия, примеры проектов, изучение справочного раздела, а также 5 часов поисков в Google по этой теме.
Я также не понимаю, почему 6 или 7 потоков SO с точной той же проблемой, не получили ответ, каждое загружаемое приложение на рынке перестает воспроизводить свою музыку ( если это не проигрыватель фоновой музыки), когда вы нажимаете HOME или BACK или что-то еще, чтобы «выйти» из приложения, чтобы сделать что-то еще на своем телефоне.
Что мне не хватает?