我正在尝试编写一个 Android 应用程序,该应用程序将允许用户收听广播电台。
我已经启动和停止按钮可以工作并且它可以播放流。如果我按主页键并开始使用手机执行其他操作,流将继续播放。这就是我希望它发挥作用的方式。
我是否应该创建一个服务来播放流,或者我已经使用的方法是否足够好?将其纳入服务会带来什么好处?很多在线教程和示例似乎都使用了服务,但在我看来,这只是在代码中添加了额外的复杂性。或者效率更高?
问候,
大卫
您不需要使用服务,但您的用户在正常使用下可能会发现播放意外停止,这取决于正常使用情况,因此服务是最好的方法。
原因是由于您的流对象/媒体播放器当前附加的活动的生命周期。
在某个时刻,系统将完全释放 Activity,因为它不再对用户可见,并且一旦 GC 发生,播放就会停止。这种情况的发生取决于内存压力以及用户采取的其他操作,例如启动其他应用程序。服务允许有更长的生命周期,一般来说,它们只有在所有其他后台活动释放之后、前台活动之前才会被释放。有关服务的流程生命周期规则的更完整描述可以在 Android 文档中找到here.
您可能还想查看 PowerManager 和 PARTIAL_WAKE_LOCK 的使用,这将允许在手机正常睡眠时继续播放(以电池寿命为代价)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)