我有一个包含以下活动的应用程序:
A->B->C
On 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 :(得分:0)
删除super.onBackPressed()并在onBackPressed()方法上方添加@Override。
答案 1 :(得分:0)
而不是打电话
finish();
使用
player.stop();
finish();