【问题标题】:onLoadChildren must call detach(), MusicBrowserService, Android?onLoadChildren 必须调用 detach()、MusicBrowserService、Android?
【发布时间】:2019-01-15 07:29:42
【问题描述】:

我正在使用 MediaBrowserService 在设备上播放音频。 当我打开蓝牙并播放音频时,应用程序崩溃了。

以下是日志

java.lang.IllegalStateException: onLoadChildren must call detach() or sendResult() before returning for package=com.android.bluetooth id=__ROOT__
   at android.service.media.MediaBrowserService.performLoadChildren(MediaBrowserService.java:669)
   at android.service.media.MediaBrowserService.addSubscription(MediaBrowserService.java:600)
   at android.service.media.MediaBrowserService.-wrap3(MediaBrowserService.java)
   at android.service.media.MediaBrowserService$ServiceBinder$3.run(MediaBrowserService.java:272)
   at android.os.Handler.handleCallback(Handler.java:751)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:154)
   at android.app.ActivityThread.main(ActivityThread.java:6682)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

如何处理?

【问题讨论】:

    标签: android audio-player mediabrowserservicecompat mediabrowserservice android-music-player


    【解决方案1】:

    onLoadChildren()

    调用以获取有关媒体项的子项的信息。

    实现必须使用子列表调用 result.sendResult。 如果加载孩子将是一项昂贵的操作,那么应该 在另一个线程上执行,result.detach 可能会在之前被调用 从这个函数返回,然后调用 result.sendResult 时 加载完成。

    如果媒体项没有任何子项,请致电 带有空列表的 MediaBrowserService.Result.sendResult(T)。

    https://developer.android.com/reference/android/service/media/MediaBrowserService.html#onLoadChildren(java.lang.String,%20android.service.media.MediaBrowserService.Result%3Cjava.util.List%3Candroid.media.browse.MediaBrowser.MediaItem%3E%3E,%20android.os.Bundle)

    result.sendResult() 必须在 onLoadChildren() 实现中调用。

    【讨论】:

      【解决方案2】:

      似乎 MediaBrowserService 在错误状态下处理它,请在此处检查生命周期:https://developer.android.com/guide/topics/media-apps/audio-app/building-a-mediabrowserservice#service-lifecycle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多