1
我在重写了onDestroy方法后遇到了一些问题。 我的应用程序是一个音乐播放器,使用mediaplayer的实例,我需要在某些时候强制释放它,如果没有音乐播放。 这是到目前为止我的代码,为了使招我都overrided中,onKeyDown()和的onDestroy()方法:onDestroy在关闭应用程序后崩溃
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
if(mp.isPlaying())
{
//Genera la notifica
generateNotificationSong();
//Muovi in background
moveTaskToBack(true);
}
else finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
//Faccio un override della funzione onDestroy per evitare che il mediaplayer continui
//a mandare musica in background, inoltre l'UpdateTimeTask risulta inutile
@Override
public void onDestroy()
{
mNotify.cancel(001);
if(mHandler != null)
mHandler.removeCallbacks(mUpdateTimeTask); //rimuovo il thread che aggiorna la seekbar
if(mp != null)
mp.release(); //rilascio il media player
super.onDestroy();
}
,当我想关闭该应用程序,我只需按下背面就是这样,现在按钮,这些应用程序调用方法onPause()onStop()和onDestroy()正确吗? 无论如何,有时会发生,关闭手机后冻结4-5秒,并显示一条消息:“程序应用程序已关闭”。 我知道我在这里做错了事,但我不知道是什么,我需要一些帮助。 谢谢你的建议!
检查mnotify是否为空也检查mp是否为空 – stinepike 2013-04-22 16:47:06
tip super.onDestroy();必须是onDestroy中的第一条语句() – Raghunandan 2013-04-22 16:48:56
我已经说了你的话,但问题仍然存在 – Pievis 2013-04-23 21:29:49