gpt4 book ai didi

Android Auto SERVICE_INTERFACE MediaBrowserServiceCompat

转载 作者:行者123 更新时间:2023-11-29 19:23:13 25 4
gpt4 key购买 nike

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

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;}
}

我有另一个 Activity 通过 musicBind IBinder 与我的服务绑定(bind),但另一方面我已经设置了所有东西以在 Android 自动界面中连接我的应用程序但是在将设备与 Android auto 断开连接后关闭我的应用程序后,我无法停止我的 MediaBrowserServiceCompat 我认为是由于此 SERVICE_INTERFACE 保持绑定(bind)服务。

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

最佳答案

根据 media browser service lifecycle documentation ,您的 MediaBrowserServiceCompat 通常只绑定(bind)(因此在最后一个客户端取消绑定(bind)时被销毁),只启动(例如在后台播放音乐时),或者既绑定(bind)又启动(例如在用户界面可见的情况下播放音乐)。

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

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

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

关于Android Auto SERVICE_INTERFACE MediaBrowserServiceCompat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com