2011-06-11 83 views
12

我正在開發一個應用程序,可以在給定的活動中自動連續播放mp3文件。它通過從MediaPlayer偵聽「onCompletion」事件知道當前的mp3播放是否完成。Android:如何知道活動是否完成?

但是,如果我在播放媒體時按回退按鈕返回到開始顯示,顯然活動仍在運行。當觸發「onCompletion」事件時,它會嘗試訪問列表活動中的視圖,並在空指針異常時崩潰。

確定活動不再「活動」並因此能夠阻止呼叫播放下一個音頻的最佳方式是什麼?

回答

18

嘗試在Activity生命週期方法onStop或onDestroy中觸發這些方法。查詢this documentation瞭解更多詳情。

當用戶點擊後退按鈕時,會觸發onStop。因此,請在onStop中處理您的事件。

public void onStop() { 
//do your stuff here 
super.onStop() 
} 

最終onDestroy也會被調用,但不一定一旦後退按鈕被點擊。

+0

謝謝。我只是在onStop方法中設置一個標誌,並在偵聽器中檢查它。它像一個魅力。 – 2011-06-11 04:29:17

+1

當一些新的活動出現在這個活動之前時,onStop()也會被觸發。如果你想聽回按鈕,請嘗試onBackPressed()事件。 – 2017-06-06 12:43:45

相關問題