Android自动服务接口MediaBrowserServiceCompat
我正在开发android auto,但在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");
服务的方法的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
(可选地添加服务类的名称以筛选该类)查看服务的状态