2016-10-10 146 views
0

我有以下活動的應用程序:活動不破壞完全

A->B->C 

C我使用下面的代碼時,我的web服務返回true發揮循環MP3文件(我們會定期檢查):

void PlayBeepLoop() 
{ 

    try { 
     if(player.isPlaying()) 
      return; 

     AssetFileDescriptor descriptor = getAssets().openFd("beep.mp3"); 
     player.reset(); 
     player.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength()); 
     descriptor.close(); 

     player.prepare(); 
     player.setVolume(1f, 1f); 
     player.setLooping(true); 
     player.start(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

的問題是,如果我從C->B去逼人退,我相信循環在後臺繼續運行,當它返回true它會發出蜂鳴聲。

C代碼也不起作用:

public void onBackPressed() { 
    super.onBackPressed(); 
    finish(); 
} 

請幫助 PS:我需要提示音按下後退按鈕時,僅停止。應用程序仍在顯示時按下主屏幕按鈕C應允許在應用程序處於後臺時發出嘟嘟聲。

+0

嘗試停止循環以某種方式調用'完成()之前;'。 – Fusseldieb

+0

如果整個活動都沒有了,爲什麼媒體播放器仍然活着? –

+0

看看:http://stackoverflow.com/questions/4924071/calling-finish-on-an-android-activity-doesnt-actually-finish – Fusseldieb

回答

0

刪除super.onBackPressed()並在onBackPressed()方法上面添加@Override。

0

與其說

finish(); 

使用

player.stop(); 
finish();