我正在尝试深入研究服务架构。
仅出于测试目的,我正在创建音乐应用程序。
毫无疑问,音乐应该在服务中播放,但使用什么样的沟通方式?据我所知,服务可以绑定或启动(或同时启动)
首先,我需要播放/停止/暂停/设置源...
其次,如果音乐播放器打开,我需要通知 UI 有关进度、缓冲等事件...
这是我对此的想法。
我考虑混合绑定和启动服务。
至于歌曲只能从 UI 设置以及暂停/播放/停止/搜索,我选择使用活页夹从 UI 与服务通信。(在活动中绑定服务并让绑定器返回与服务通信)
来自服务的通知,如轨道已完成、下一个轨道、当前轨道位置。我决定使用Broadcast receiver
发送这样的通知,因为它可以是多个感兴趣的组件。
所以我的问题是
- 音乐播放器服务的最佳通信方式(绑定或广播)是什么?
- 系统如何知道服务是什么?我的意思是,即使服务是
bound
我首先需要调用startService
方法然后绑定它。这是否意味着即使bindService
调用了一个方法,它也被视为绑定服务,并且在unbind
调用方法时会被杀死? LocalBroadcastManager
与服务沟通有意义吗?至于LocalBroadcastManager
每个应用程序是本地的,为什么不使用绑定服务呢?如果其他应用程序对事件感兴趣,全局广播很有意义。
请帮助理解这种机制。