我有以下代碼,它在服務中播放一段時間後會播放一些音頻。問題是,在退出應用後,媒體播放器繼續運行;我想在應用程序退出或關閉後停止播放音頻。即使在退出應用後,Mediaplayer仍在播放?
這裏是我的聲音:
順便說一句,十三個在頂部聲明中:
MediaPlayer ten;
MediaPlayer three;
我真的很感激任何反饋(正面或負面)!非常感謝你的幫助,如果你需要更多的代碼,請告訴我。
我有以下代碼,它在服務中播放一段時間後會播放一些音頻。問題是,在退出應用後,媒體播放器繼續運行;我想在應用程序退出或關閉後停止播放音頻。即使在退出應用後,Mediaplayer仍在播放?
這裏是我的聲音:
順便說一句,十三個在頂部聲明中:
MediaPlayer ten;
MediaPlayer three;
我真的很感激任何反饋(正面或負面)!非常感謝你的幫助,如果你需要更多的代碼,請告訴我。
選項1:您可以使用前臺服務,以便您的服務僅在應用程序運行時運行。 在這裏查看更多關於前臺服務的信息。 http://developer.android.com/guide/components/services.html#Foreground
Option2:在Activity中停止onDestroy方法的服務。使用此代碼
@Override
protected void onDestroy() {
super.onDestroy();
Intent in = new Intent(YourActivity.this, MyService.class);
stopService(in);
}
建議: 你也應該儘量只使用一個MediaPlayer對象,做這樣的事情:
stopPlaying(); // To stop whatever is currently playing
mp2 = MediaPlayer.create(YourActivity.this, R.raw.second);
mp2.start();
在你的情況,我可能會與選項2去。 All the Best :)
嘿,選項二的問題是用戶可能會從** ** **活動退出應用程序。我必須把它放在每個活動的onDestroy方法中嗎?我有15個活動... –
上面的onDestroy方法的簡單複製粘貼不應該花費太多時間。或者,也許你可以從你的服務的onStartCommand()返回START_NOT_STICKY'。這似乎是一個更好的選擇。在這裏閱讀更多關於它的內容:http://developer.android.com/reference/android/app/Service.html#START_NOT_STICKY –
在退出應用程序之前,你有叫stopService()還是stopSelf()? – Aakash
@Aakash不,只有我稱爲stopService的地方在onFinish()中。我應該在哪裏叫它?有什麼方法總是在應用退出時被調用? –
根據圖中顯示的代碼,看起來您正在擴展服務類,您需要在您的活動的onDestroy()中停止服務,或者如果您可以創建應用程序類並停止該類的onDestroy()中的服務,這也將是有幫助的,您將需要在清單中定義應用程序類的名稱在這種情況下 – Aakash