【问题标题】:Android, should I make MediaPlayer a service?Android,我应该让 MediaPlayer 成为一项服务吗?
【发布时间】:2012-01-25 21:37:06
【问题描述】:

我正在尝试编写一个允许用户收听广播电台的 Android 应用程序。

我有开始和停止按钮工作,它播放流。如果我按下 home 键并开始用手机做其他的点点滴滴,流继续播放。这就是我希望它工作的方式。

我应该创建一个播放流的服务,还是我已经使用的方法足够好?在服务中使用它会带来什么好处?许多在线教程和示例似乎都使用了服务,但在我看来,这只是在代码中增加了额外的复杂性。还是效率更高?

问候, 大卫

【问题讨论】:

    标签: android media-player


    【解决方案1】:

    您不需要使用服务,但您的用户在正常使用下可能会发现播放意外停止,这取决于正常使用情况,因此服务是最好的方法。

    原因是由于您的流媒体对象/媒体播放器当前附加到的 Activity 的生命周期。

    在某些时候,系统将完全释放 Activity,因为它不再对用户可见,并且一旦发生 GC,播放将停止。这将取决于内存压力和用户采取的其他操作,例如启动其他应用程序。服务被允许更长的生命周期,通常它们只会在所有其他后台活动被释放但在前台活动之前才会被释放。可以在 Android 文档here. 中找到有关服务的进程生命周期规则的更完整描述

    您可能还想查看 PowerManager 和 PARTIAL_WAKE_LOCK 的使用,这将允许在手机正常休眠时继续播放(以电池寿命为代价)。

    【讨论】:

      猜你喜欢
      • 2017-02-17
      • 2018-07-13
      • 1970-01-01
      • 2015-08-25
      • 2018-03-21
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多