簡體   English   中英

當我在后退按鈕上添加onpause方法時,鈴聲應用不會邏輯崩潰

[英]Not logic crash of ringtone app when I add onpause method on back button

我有使用媒體播放器播放聲音的應用程序。 我按下“后退”按鈕時用來停止聲音的代碼是:

@Override
public void onBackPressed() {
    super.onBackPressed();
    if (mp != null) {
        mp.reset();
        mp.release();
    }
   finish();
}

該代碼運行良好,但是如果應用突然中斷,並且聲音仍在播放,則需要停止,因此我在onPause方法中添加了相同的內容(如果添加onStop方法,則是相同情況)。

  @Override
protected void onPause() {
    super.onPause();
    if (mp != null) {
        mp.reset();
        mp.release();
    }
}

現在,當我按回去時,應用程序崩潰而不是回退(在我添加onPause方法之前可以運行)onPause正常運行,因為如果按Home按鈕,聲音會停止,我在logcat中得到以下錯誤:

java.lang.RuntimeException: Unable to pause activity
java.lang.IllegalStateException

...

您無法重置已發布的MediaPlayer。 因為釋放資源后,用於播放聲音的資源不可用。 您應該更改:

mp.reset();
mp.release();

至:

mp.release();
mp = null;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM