首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在开发Android应用程序,无法理解MediaBrowserService的生命周期

我正在开发Android应用程序,无法理解MediaBrowserService的生命周期
EN

Stack Overflow用户
提问于 2016-10-25 08:45:29
回答 2查看 1.4K关注 0票数 1

在创建android时,创建了MusicService类,扩展了MediaBrowserService,这两种方法得到了自动实现的onGetRoot和onLoadChildren。有人能详细解释一下每件事是如何运作的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-24 17:41:43

MediaBrowserService的生命周期类似于它扩展的简单Service的生命周期。来自文件:

MediaBrowserService的生命周期取决于它的创建方式、它所拥有的客户机数量以及它从媒体会话回调中接收到的调用。概括地说:

  • 该服务是在响应媒体按钮启动或某个活动绑定到它时(通过其MediaBrowser连接后)创建的。
  • 媒体会话onPlay()回调应该包括调用startService()的代码。这可以确保服务启动并继续运行,即使绑定到它的所有UI MediaBrowser活动都解除绑定。
  • onStop()回调应该调用stopSelf()。如果服务已经启动,这将停止它。此外,如果没有活动,服务就会被销毁。否则,服务将一直绑定,直到其所有活动解除绑定为止。(如果在服务被销毁之前接收到后续的startService()调用,则取消挂起的停止。)

下面的流程图演示如何管理服务的生命周期。可变计数器跟踪绑定客户端的数量:

onGetRootonLoadChildren过去常使用管理客户端连接

但是要使用MediaBrowserService,这还不够,所以您应该阅读这份文件 (遵循嵌套链接)。

票数 3
EN

Stack Overflow用户

发布于 2016-10-25 09:05:22

摘自MusicPlayer.java

该类通过服务提供MediaBrowser。它通过onGetRoot和onLoadChildren方法向浏览客户端公开媒体库。

如果客户端包具有访问媒体信息的权限,onGetRoot(..):返回根id (如果不允许客户机访问,则返回null )。来源

onLoadChildren:返回媒体项的子列表。来源

要了解这两种实现的实现,请检查MusicPlayer.java中的实现

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40235371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档