我正在尝试将MediaBrowserService
Android Auto 添加到现有的媒体播放器应用程序中。该应用程序有一个管理MediaSession
,Callbacks
和相关状态的活动。它已被设置为发出事件,后台使用这些事件MediaBrowserService
并用于构建其内容树。
当流程如下时,这一切都很好:
Start my app -> Start Android Auto -> Browse media
但是,当流量为:
Start Android Auto -> Browse media
...例如,当应用程序未启动并在启动 Android Auto 之前在后台运行时。
问题似乎是,虽然我MediaBrowserService
将由 Android Auto 自动启动,但它不会Activity
在这样做时创建我的应用程序的相应实例(这意味着没有通知事件MediaBrowserService
,因此 Android Auto 中没有可用的内容)。
理想情况下,似乎MediaBrowserService
需要能够检查并查看应用程序的“主”Activity
是否正在运行,并在未运行时生成一个新实例。但不确定这是否可能,而且往往觉得这是错误的做法。
解决此问题的正确方法是什么?我不想在实现中复制所有应用程序的MediaSession
处理和播放相关代码MediaBrowserService
。这应该尽可能保持轻量级。有没有办法确保应用程序Activity
在激活时始终运行MediaBrowserService
?