首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓Auto SERVICE_INTERFACE MediaBrowserServiceCompat

安卓Auto SERVICE_INTERFACE MediaBrowserServiceCompat
EN

Stack Overflow用户
提问于 2017-01-31 09:19:33
回答 1查看 314关注 0票数 1

我正在开发一个安卓汽车,但我在ServiceOnbind方法中的这部分代码中遇到了一些问题

代码语言:javascript
复制
public IBinder onBind(Intent arg0) {
    Log.i("TAG", "OnBind");
    // TODO Auto-generated method stub
    if (SERVICE_INTERFACE.equals(arg0.getAction())) {
        Log.i("TAG", "SERVICE_INTERFACE");
        registerReceiver(receiver, filter);
        return super.onBind(arg0);
    }
    else{ Log.i("Musica Service", "musicBind");
        return musicBind;}
}

我有另一个通过musicBind IBinder绑定到我的服务的活动,但另一方面,我已经设置了所有的东西来连接我的应用程序在安卓自动界面,但关闭我的应用程序后,断开设备从安卓自动连接我无法停止我的MediaBrowserServiceCompat,我想是由于这个SERVICE_INTERFACE保持绑定的服务。

如何从相同的服务MediaBrowserServiceCompat停止或销毁此服务

EN

回答 1

Stack Overflow用户

发布于 2017-01-31 11:01:56

根据media browser service lifecycle documentation,您的MediaBrowserServiceCompat通常只被绑定(因此在最后一个客户端解绑时被销毁)、仅启动(例如在后台播放音乐时)或同时绑定和启动(例如当您的UI可见时播放音乐时)。

你的服务只有在1)不再有任何绑定的客户端和2)调用stopSelf() (假设它在某个时刻启动)时才会被销毁。Android Auto与数百个其他应用程序合作后,不太可能继续绑定到您的服务,而不是一个适用于所有媒体应用程序的严重问题。

因此,您的服务更有可能是以某种方式启动的。根据Media Session callbacks documentation,您应该在开始播放时调用startService,在停止播放时调用stopSelf -这可以确保您的服务在停止播放时被销毁,假设没有人绑定它。

您可以使用adb shell dumpsys activity services查看服务的状态(可以选择添加服务的类名,以便只过滤该类)。

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

https://stackoverflow.com/questions/41948263

复制
相关文章

相似问题

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