2015-11-05 5 views
0

У меня есть следующий код, который воспроизводит некоторые аудио через некоторое время в службе. Проблема заключается в том, что после выхода из приложения медиаплеер продолжает работать; Я хочу остановить воспроизведение звука после того, как приложение было завершено или закрыто.Убить процесс приложения после выхода?

enter image description here

Кстати, десять и три были объявлены на вершине:

медиаплеера десять; MediaPlayer three;

Выполняется ли какой-либо код при каждом закрытии приложения? Если это так, я могу вызвать stopService() из этого фрагмента кода.

Я был бы очень признателен за любые отзывы (положительные или отрицательные)! Большое вам спасибо за вашу помощь, сообщите мне, нужен ли вам еще какой-нибудь код.

{Rich} 

ответ

1

onStop вы можете mute player и

onResume вы можете play music player.

OnDestroy вы можете остановить ваш сервис

stopService(new Intent(YourService)); 

Для справки Отключение и включение плеера

How to mute MediaPlayer in android

+0

Что вызвано, когда вы уходите, нажав кнопку «домой» или кнопку «Назад»? –

+0

Также, как я могу остановить его, если есть входящий звонок или что-то еще? –

+0

Нажав кнопку «домой», активность будет идти в backgroud, поэтому onStop вызовет. Но нажатие кнопки «Назад» приведет к тому, что onDestroy вызовет –

0

Да, Android имеют жизненный цикл, которые работают в OnCreate, OnPause, OnStop и onDestory. Когда вы выходите из приложения и хотите остановить проигрыватель, вы можете сделать что-то в onStop.

Вы можете посмотреть на жизненный цикл в http://developer.android.com/training/basics/activity-lifecycle/stopping.html

Приветствиях

+0

Благодаря Джону! Есть ли способ, которым я могу отключить его в паузе? Как отключить приложение для Android до тех пор, пока пользователь не вернется? Большое спасибо, я помету вам лучший ответ (+15 rep) и, как ваш пост (+5 rep), как только я это выясню! –

+0

Ну, вы можете использовать функцию setVolume в API Mediaplayer и установить его в setVolume (0,0), посмотрите http://developer.android.com/reference/android/media/MediaPlayer.html # setVolume (float,% 20float) для справки – John

+0

Это изменит весь объем устройств, который может не понравиться пользователям. Как я могу отключить ** только ** мое приложение? –

0

Если у вас есть деятельность, которая всегда корень задачи и только корень задачи, перекрывая onBackPressed в этой деятельности, вероятно, лучший способ узнать, «что приложение« выходит »в отношении пользователя. Вы не хотели бы убивать процесс, когда активность просто отправляется на задний план.

+0

Что вы предлагаете делать для нескольких действий –

+0

@Rich Если у вас несколько действий, вы не вышли из приложения. –

+0

Дело в том, что пользователь всегда переключается между действиями. Если они решили нажать кнопку «домой», я хочу закрыть все процессы. Как я могу это сделать? Я не контролирую **, где ** пользователь выйдет из приложения, но ** где бы он ни находился, я хочу выйти из всех процессов. –

0

Вещь, которую вам нужно проверить, когда приложение идет в фоновом режиме, и когда приложение идет в фоновом режиме, остановите свое обслуживание. Для этого вам необходимо использовать

ActivityLifecycleCallbacks 

Вы можете найти более подробную информацию о здесь ActivityLifecycleCallbacks

также пример, который поможет вам. link

Смежные вопросы