问题描述
|
我有一个活动,可以播放ѭ0内的音频。用户还可以单击列表项并转到该数据的更详细视图。我希望音频在从一个活动到另一个活动的过渡期间继续播放,并在细节活动处于活动状态后继续播放,但是如果我的活动由于任何其他原因被暂停或停止,我还需要暂停音频。
我的问题是我当前在ListActivity中的“ 1”中暂停了音频,因为我希望在用户离开我的活动时暂停音频。例如。当他们按Home或Back。但是,我不想在我的详细查看活动开始时暂停音频。在两种情况下都调用
onPause()
,那么如何区分这两种情况?
解决方法
您不应该在服务中这样做吗?会不会更容易?然后,当一个或另一个活动正在暂停或退出时(取决于您要选择哪个),您可以停止该服务。您还可以检查它是否已启动,并在需要时相应地停止。
或抱歉,如果我不明白您的问题。我看到您在这方面有很多要点,所以也许我很困惑。
---自您的第三条评论以来进行了编辑:
A意图B:发送带有音乐名称的
Intent
。
B onCreate:从Intent
获取音乐名称。将标志x
设置为true
。
B onResume:如果从A开始播放音乐,或者如果从B重新开始从最后一个已知位置恢复播放音乐。
B后退按钮:覆盖并将x
设定为false
。实际上,您会涵盖所有活动达到9分的地方。
暂停播放:停止音乐if(x)
,将音乐的最后一个已知位置存储在内存中并停止服务。
在这里,我假设您希望即使返回A时音乐也能继续播放(这就是您所说的,这就是问题所在),而不仅限于B音。IMO设置x很重要,因为如果有的话出现其他活动(电话,任何东西)时,该活动将在onPause上立即停止播放音乐(用户期望如此)。根据Android准则,您知道只有在用户按下“后退”按钮或您完成活动后,您才能回到A。您可以微调检查活动在任务中的位置(不记得现在怎么做)。
就我个人而言,我也不想在A上继续播放(例如,B-> call-> home-> A,也将步骤3应用于A),因为在那里发生了逻辑流中断。
卡瓦特:我会确保没有其他办法。我将尝试查看您是否可以1)提前知道将要显示的活动。 2)获得任何音乐服务来完成您的任务(甚至可能吗?)。
无论如何,如果找不到聪明的方法,请使用我的解决方案。那是我的建议。祝好运。