簡體   English   中英

調用onPause時Android應用崩潰

[英]Android app crash when call onPause

您好,我是android dev的新手,我正在使用Eclipse,並且一直在開發一些音板。 我的問題是這樣的:

public class BernardsActivity extends Activity {

    MediaPlayer eileanBeag;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.bernards_layout);

        Button eileanBeagButton = (Button) findViewById(R.id.ButtonB1);

        eileanBeagButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                eileanBeag = MediaPlayer.create(getApplicationContext(), R.raw.eilean_beag);
                eileanBeag.start();
            }    
      });  

    ***public void onPause() {
        eileanBeag.release();                   
    }***    
}

該應用程序運行良好,所有音頻均正常播放,但是當我使用“后退”按鈕離開該應用程序時,它告訴我該過程已意外停止,因此我不得不強制退出。

當我在onCreate方法之外定義MediaPlayer時,該方法可以正常工作,但是我希望使用多種聲音並減少加載時間,只有在按下按鈕后才定義它。

我嘗試使用OnCompleteListener,它似乎確實起作用,但隨后它會盡早切斷我的聲音片段。

因此,對此的任何幫助將不勝感激。

謝謝。

看起來唯一有問題的是,在調用eileanBeag.release();之前eileanBeag.release(); 您應該調用eileanBeag.stop(); 播放時不能直接釋放播放器。 你也缺少super.onPause();

應該是這樣的:

public void onPause() {
    super.onPause();
    eileanBeag.pause();
}

protected void onDestroy() {
    super.onDestroy();
    if(eileanBeag != null) {
        eileanBeag.stop();  
        eileanBeag.release();
    }
}

您需要在onPause方法中調用super.onPause()作為第一條語句

暫無
暫無

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

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