2014-02-10 184 views
-2

我加入以下代碼I類有: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

確定發生這種情況,因爲MediaPlayer播放音樂的背景服務所以停止音樂,你必須添加此:

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

其中mediaplayerMediaPlayer類的實例。

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()方法,這可能藏漢工作...

希望這可以幫助