2014-02-10 5 views
-2

Я добавил следующий код к классу у меня есть:Android активность не заканчивается на Кнопка Назад

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
    /* 
    AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
    dialog.setTitle("test"); 
    dialog.setMessage("test 123"); 
    dialog.setNeutralButton("OK", null); 
    dialog.create().show(); 
    */  
    finish(); 
} 

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

Почему это? Не удалось завершить() остановить MediaPlayer?

+1

Обычно музыка воспроизводится с фоновым сервисом, на который не влияет действие закрытия. – matcauthon

+1

MediaPlayer не является частью Activity. 'finish()' просто заканчивает Acitivity. – Naetmul

+0

остановите свой медиаплеер в onPause или onStop – Raghunandan

ответ

0
finish(); 

завершает вашу деятельность,

вы должны stop() медиаплеера в деятельности onPause() метод (и выпустить его в onDestroy())

0

OK это происходит потому, что MediaPlayer играет музыку в фоне Служба. Чтобы остановить музыку, вы должны добавить это:

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
    if(mediaplayer.isPlaying()) 
      mediaplayer.stop(); 
    finish(); 
} 

Где mediaplayer является экземпляром класса MediaPlayer.

1

Проверьте наличие MediaPlayer, независимо от того, играет он или нет в вашем onBackPressed() событиях.

Попробуйте, как показано ниже:

@Override 
public void onBackPressed() { 
    if(mediaPlayer.isPlaying()) { 
     mediaPlayer.stop(); 
    } 
    super.onBackPressed(); 
} 
0

попробовать это:

public void onDestroy() 
{ 
    super.onDestroy(); 
    activities.remove(this); 
} 

public static void finishAll() 
{ 
    for(Activity activity:activities) 
     activity.finish(); 
} 

или попробуйте добавить метод отделки в OnPause() метод, который может работать как хорошо ...

надеюсь, что это помогает

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