1

我有一个 Android 服务,可以流式传输背景音乐,有时托管进程似乎在播放音乐时停止播放,而在某些负载下,例如在我的 Galaxy S3 (4.1.1) 上的 Chrome 中打开十几个或标签页的重型网站。根据我所做的研究,我知道这是许多论坛都涉及的主题,但我希望在这里获得一些其他技术的建议。

为了更好的表达,我想知道在它认为它不如其他进程重要之后,是否有办法减少 Android 杀死我的服务的机会。

到目前为止我已经实现的事情:

  1. UI 级别的活动/片段与通过 onStart() 发送播放/暂停等命令一起绑定到服务(当应用程序本身不在前台/对用户不可见时会发生此问题 - 通知除外)。
  2. 服务实现 startForeground()/stopForeground()
  3. 服务还实现了 AudioFocus。

我阅读并考虑过的方法:使用 IntentService/HandlerThread 之类的东西在自己的工作线程上运行 MediaPlayer 并将线程的优先级设置得更高,但是由于 Android 的进程优先级功能没有考虑到我的应用程序的内部线程管理,所以我没有预见到这种情况会有所改善(如果此陈述有误,请纠正我)。

在后台播放音乐的同时浏览一堆网站我认为这不是一项艰巨的任务,尤其是在像 S3 这样的高规格设备上,而且我认为用户宁愿让他们的音乐继续在后台播放,即使这意味着在 Chrome 中切换标签意味着它有时必须刷新一些页面。

如果有人有一些提示或建议,请提前感谢。

4

0 回答 0