android - 恢复时销毁 Activity 的最后执行

标签 android

我正在开发一个从 Internet 检索音乐文件的音乐应用程序。

我有两个 Activity

  1. 主要 Activity
  2. 播放器 Activity

当有人点击 MainActivity 中的一个元素时,这会加载第二个 PlayerActivity 并开始播放歌曲

第一次使用效果很好。当有人点击后退按钮并点击另一个元素时,问题就来了,这一次歌曲开始播放而不停止当前播放的歌曲,

这是我尝试过的代码。

主 Activity

            Intent intent = new Intent(v.getContext(), PlayerActivity.class);
            EditText albumID = (EditText) findViewById(R.id.albumID);
            String message = albumID.getText().toString();
            intent.putExtra(ALBUMID, message);
            startActivity(intent);

播放器 Activity

 try {

        if(player.isPlaying()) {
            player.release();
        }

        player.reset();
        player.setDataSource(urls.get(position));
        player.prepare();
        player.start();
        seekbar.setMax(player.getDuration());
    } catch (IOException e) {
        e.printStackTrace();
    }

注意: 如果需要,我可以发布完整代码。

最佳答案

我想这是因为您拥有不同的播放器实例,这就是为什么当您停止它时它会“停止”与您想要的播放器不同的播放器。播放器未附加到 Activity,并且当 Activity 被销毁时它也不会被销毁...

您应该只有一个播放器实例。也许使用单例或静态单例。 你能在 Activity 停止时停止播放器吗?比如,它正在被摧毁?

如果不清楚,您可以尝试上传更多代码,以便我们可以看到更多......

关于android - 恢复时销毁 Activity 的最后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27823560/

相关文章:

android - 从 AnimationDrawable 释放内存

Android 更改小部件背景图片

android - JaCoCo 报告 0% 的代码覆盖率

xlarge 的 Android 屏幕分辨率

java - 在 Android 上使用 tcpdump 时出现延迟 - 为什么?

java - 从 Android 应用程序创建主屏幕浏览器快捷方式

android - 如何更改自定义 ROM 上的默认壁纸

java - 添加操作栏(Android 教程)

android - AsyncTask 上的触发事件已完成

android - 如何在新的 MaterialComponents 中更改 ActionBar 的背景颜色