区分不同的Activity转换

时间:2011-06-15 18:37:06

标签: android lifecycle

我有一个活动,可以在ListActivity内播放一些音频。用户还可以单击列表项并转到该数据的更详细视图。我希望音频在从一个活动转换到另一个活动期间继续播放,并在细节活动激活后继续播放但是如果我的活动因任何其他原因暂停或停止,我还需要暂停音频。

我的问题是我目前暂停ListActivity中onPause()的音频,因为我希望当用户离开我的活动时暂停音频。例如。当他们按Home或Back时。但是,当我的详细视图活动开始时,我不希望音频暂停。在两个实例中调用onPause(),那么如何区分这两种情况呢?

1 个答案:

答案 0 :(得分:1)

你不应该在service中这样做吗?不是更容易吗?然后,您可以在暂停或退出一个或另一个活动时停止服务(取决于您想要的活动)。您还可以检查它是否已启动,并随时停止。

或者抱歉,如果我不明白你的问题。我看到你在这里有很多要点,所以也许我只是感到困惑。

---自第三条评论以来编辑:

  1. 对B的意图:发送带有音乐名称的Intent
  2. B onCreate :从Intent获取音乐名称。将标记x设置为true
  3. B onResume :如果从A 从上一个已知位置恢复,如果从B恢复,则开始播放音乐。
  4. B后退按钮:覆盖并将x设置为false。实际上,您将覆盖活动finish es。
  5. 的所有点
  6. B onPause :停止音乐if(x),将最后已知音乐位置存储在内存中并停止服务。
  7. 在这里,我假设你想要音乐继续播放,即使在返回A时(这就是你所说的,这就是问题),而不仅仅是B.在早期设置x很重要,IMO,因为如果有任何其他活动(电话,任何东西)出现,活动将立即停止播放音乐(用户期望)onPause。根据Android指南,您知道只有当用户按下后退按钮或完成()您的活动时才会返回A.您可以微调检查任务中活动的位置(不记得现在该怎么做)。

    就个人而言,我也不想在A上恢复播放(例如,B-> call-> home-> A,也将步骤3应用到A),因为逻辑流程中断事情发生在那里。

    CAVEAT :我会确保没有别的办法。我会试着看看你是否可以1)事先知道哪些活动即将展示。 2)让任何音乐服务与您的任务联系起来(甚至可能吗?)。

    无论如何,只要你找不到一个聪明的方法来使用我的解决方案。那是我的建议。祝你好运。