对启动模式感到困惑
Posted
技术标签:
【中文标题】对启动模式感到困惑【英文标题】:Confused with launchMode 【发布时间】:2021-11-10 22:08:38 【问题描述】:我制作了一个以两种方式运行的音乐播放器:
-
如果作为普通应用启动,它会继续播放上次关闭时播放的内容,并且应该在后台启动;
如果在文件管理器中选择了一个音频文件,它会播放在前台点击的歌曲。
因为我只想运行一个应用程序实例,所以我添加到 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) 方法?哪个是“更便宜”的解决方案?
【问题讨论】:
【参考方案1】:您必须覆盖 onNewIntent() 才能启动用户在文件管理器中单击的歌曲。
【讨论】:
是的,这就是我刚刚所做的,并且有效。我希望有另一种方法...谢谢!以上是关于对启动模式感到困惑的主要内容,如果未能解决你的问题,请参考以下文章