在创建android Auto媒体应用程序MusicService类时,它会创建扩展MediaBrowserService的类,并通过onGetRoot和onLoadChildren自动实现这两种方法。
谁能详细解释每件事的运作方式。
最佳答案
MediaBrowserService
的生命周期看起来像它扩展的简单Service
的生命周期。
From documentation:
MediaBrowserService的生命周期由它的方式控制
创建,拥有的客户端数量以及调用
它从媒体会话回调中接收。总结一下:
在响应媒体按钮启动服务或将活动绑定到服务时(通过服务连接后)
MediaBrowser)。
媒体会话onPlay()回调应包含调用startService()的代码。这样可以确保服务启动并继续
运行,即使绑定到它的所有UI MediaBrowser活动也是如此
解除绑定。
onStop()回调应调用stopSelf()。如果服务已启动,则将其停止。此外,如果存在,服务将被销毁
没有与之相关的活动。否则,服务将保持绑定
直到所有活动解除绑定。 (如果随后的startService()调用
在服务销毁之前收到,挂起的停止是
取消。)
以下流程图演示了服务的生命周期如何
管理。可变计数器跟踪绑定客户端的数量:
onGetRoot
和onLoadChildren
曾经用于manage client connections。
但是要使用MediaBrowserService还不够,因此您应该阅读this documentation(遵循嵌套链接)。