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