创建Android时自动媒体App MusicService类创建扩展MediaBrowserService,两个方法在GetRoot和onLoadChildren上自动实现。 任何人都可以详细解释每件事情是如何运作的。
答案 0 :(得分:2)
此类通过服务提供MediaBrowser。它暴露了 媒体库通过onGetRoot和浏览客户端 onLoadChildren方法
onGetRoot(..):如果客户端软件包具有访问媒体信息的权限,则返回root id(如果不允许客户端,则返回null)。 Source
onLoadChildren :返回媒体项的子项列表。 Source
要了解两者的实现,请检查MusicPlayer.java
中的实现答案 1 :(得分:2)
MediaBrowserService
的生命周期看起来像它延伸的简单Service
的生命周期。
From documentation:
MediaBrowserService的生命周期由它的控制方式控制 创建,拥有它的客户端数量和调用 它从媒体会话回调中接收。总结一下:
- 服务在启动时响应媒体按钮或活动绑定时创建(通过其连接后) MediaBrowser时)。
- 媒体会话onPlay()回调应该包含调用startService()的代码。这可确保服务启动并继续 运行,即使绑定到它的所有UI MediaBrowser活动也是如此 解除绑定。
- onStop()回调应该调用stopSelf()。如果服务已启动,则会停止该服务。此外,如果存在,该服务将被销毁 没有任何约束的活动。否则,服务仍然受约束 直到它的所有活动解开。 (如果后续的startService()调用 在服务被销毁之前收到,待处理的停止是 取消。)
onGetRoot
和onLoadChildren
用于manage client connections。
但要使用MediaBrowserService这还不够,所以你应该阅读this documentation(按照嵌套链接)。