使用Chromecast发送方应用,我很难找到用于在拆解实施中取消注册com.google.android.gms.cast.Cast.Listener的API。
这就是api客户端的构建方式:
CastListener castListener = new CastListener();
Cast.CastOptions.Builder apiOptionsBuilder = Cast.CastOptions
.builder(device, castListener);
GoogleApiClient apiClient = new GoogleApiClient.Builder(context)
.addApi(Cast.API, apiOptionsBuilder.build())
.addConnectionCallbacks(connectionCallbacks)
.addOnConnectionFailedListener(connectionFailedListener)
.build();
以及我的拆解()实现中的一些内容:
apiClient.unregisterConnectionCallbacks(connectionCallbacks);
apiClient.unregisterConnectionFailedListener(connectionFailedListener);
apiClient.disconnect();
apiClient = null;
似乎存在用于连接回调和失败的侦听器的取消注册*方法,但不是用于删除强制转换侦听器。因此,即使在拆解之后,CastListener方法仍在执行(onVolumeChanged),因此我假设GoogleApiClient的处理不完整。在拆解方面还有什么可以做的吗?像GoogleApiClient上隐藏的removeApi()方法?
目前在我的CastListener.onVolumeChanged()中有apiClient!= null检查,但我想避免这种情况,而是有一个解决方案,其中强制转换侦听器完全处理在拆解()中。
有什么想法吗?