繁体   English   中英

将多个活动绑定到一个音频播放器服务

[英]Binding several activities to one service for audio player

我有一个名为AudioService的服务,该服务扩展了android类Service。 此外,我的应用程序中有5个活动。 如何将我的一项服务仅绑定到其中三个活动?

我感兴趣的是能够在用户查看这三个活动中的任何一个时运行服务,但是如果他们查看其他任何内容,则该服务将关闭。

例如,如果用户单击一个按钮并进入这3个活动之一,则该服务将启动。 可以在那时启动Mediaplayer对象。 他们可以单击其他导航按钮或后退按钮,并且只要他们正在观看音乐而不会中断地继续播放这3个活动之一。

使用共享的原子变量与服务通信状态。 这样可以停止/开始播放音乐。

  1. 在服务上声明一个静态AtomicBoolean,并声明一个可以设置/获取此布尔值的静态方法。 这应该跟踪音乐是否已经在播放。 如果设置为true,则正在播放音乐。

  2. 当用户单击将其带入活动的按钮时,请使用该活动的onStart()方法检查此布尔值。 如果为假,则音乐不播放。 将其设置为true。 将其设置为true的方法也应该开始播放音乐。

  3. 在其他2个活动的onStart()方法上,将AtomicBoolean的值设置为false。 服务上的方法现在应将AtomicBoolean设置为false并释放媒体播放器。

后台服务本身可以继续运行。 要重新开始播放音乐时,只需重建媒体播放器即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM