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