【问题标题】:Confused with launchMode对启动模式感到困惑
【发布时间】:2021-11-10 22:08:38
【问题描述】:

我制作了一个以两种方式运行的音乐播放器:

  1. 如果作为普通应用启动,它会继续播放上次关闭时播放的内容,并且应该在后台启动;
  2. 如果在文件管理器中选择了一个音频文件,它会播放在前台点击的歌曲。

因为我只想运行一个应用程序实例,所以我添加到 mainfest:

android:launchMode="singleTask"

我所做的就是执行这个onCreate

    uri = getIntent.getData();
    if (uri != null) {
        newsong = uri.toString()...
        play(newsong);
    } else {
        moveTaskToBack(true);
        playoldsong();
    }

它工作得很好,除了这样一个事实,当像 (1) 一样开始时,过了一会儿,我在文件管理器中选择了一首歌曲,主要活动被带到了前面(这是我想要的)但是它继续播放歌曲选择之前正在播放的内容。播放器忽略了新歌曲,我希望它切换到它。

这实际上是有道理的,因为我调用新歌的唯一地方是onCreate

也许launchMode 不是正确的?也许我应该@Overwrite OnNewTask(Intent) 方法?哪个是“更便宜”的解决方案?

【问题讨论】:

    标签: android android-intent launchmode


    【解决方案1】:

    您必须覆盖 onNewIntent() 才能启动用户在文件管理器中单击的歌曲。

    【讨论】:

    • 是的,这就是我刚刚所做的,并且有效。我希望有另一种方法...谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    相关资源
    最近更新 更多