活动没有完全破坏

时间:2016-10-10 10:33:59

标签: android

我有一个包含以下活动的应用程序:

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时,按主页按钮可以在应用程序处于后台时发出哔声。

2 个答案:

答案 0 :(得分:0)

删除super.onBackPressed()并在onBackPressed()方法上方添加@Override。

答案 1 :(得分:0)

而不是打电话

finish();

使用

player.stop();
finish();