Android自动服务接口MediaBrowserServiceCompat

Android自动服务接口MediaBrowserServiceCompat,android,android-service-binding,Android,Android Service Binding,我正在开发android auto,但在服务的方法的Onbind中,我的这部分代码有一些问题: 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");

我正在开发android auto,但在
服务的
方法的
Onbind
中,我的这部分代码有一些问题:

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
与我的服务绑定,但另一方面,我已经在Android auto interface中设置了所有东西来连接我的应用程序,但在断开设备与Android auto的连接后关闭我的应用程序后,我无法停止我的
MediaBrowserServiceCompat
,我想这是由于
服务接口保持绑定服务

如何从同一个服务中停止或销毁此服务?
MediaBrowserServiceCompat

根据,您的
MediaBrowserServiceCompat
通常只绑定(因此在最后一个客户端解除绑定时被销毁),只启动(例如在后台播放音乐时),或者绑定并启动(例如在用户界面可见时播放音乐)

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

因此,您的服务更有可能以某种方式启动。根据,开始播放时应调用
startService
,停止播放时应调用
stopSelf
——这可确保在停止播放时,您的服务(假设没有人仍然绑定到该服务)将被销毁

您可以使用
adb shell dumpsys activity services
(可选地添加服务类的名称以筛选该类)查看服务的状态