android kotlin pubnub-sdk有时不起作用



我正在使用pubnub android kotlin sdk进行聊天功能。然而,我有三个不同的片段,我使用pubnub的函数。H

ence我创建了一个服务,它可以监听来自pubnub的incomings事件,并将其作为ui的一部分发布在片段上。

在3个不同的片段上有多个通道。一个片段用于一对一消息传递,而另一个片段则用于组消息传递。每当我打开片段时,我都会在每个片段上订阅频道,但当我离开片段时,不会取消订阅。目前,每当我打开第一个片段进行一对一消息传递时,我的pubnub都能很好地工作,但当我打开另一个片段进行组消息发送时,第一个片段上的侦听器停止侦听传入的消息或事件。

我的问题是,我是第一次订阅所有频道一次,还是在相应的片段页面上订阅每个频道。此外,我想知道在android kotlin中使用pubnub的最佳实践是什么。共享代码对我来说有点困难。

PubNub客户端对象和SubscribeCallback侦听器作用域

如果你想订阅你输入和离开的每个片段的频道,你需要在应用程序范围(MainActivity,可能是一个单例(或Fragments范围之上的某个范围创建PubNub客户端对象和*SubscribeCallback listener*,比如包含这些碎片的View,假设片段在同一视图中,如果不是,则移动到下一个最高范围(活动(。

因此,当您输入Fragment时订阅新频道时,这些频道只会添加到更高范围的PubNub客户端对象的单个订阅请求中,发布到这些频道的消息将在该更高范围中的侦听器中接收。

如果你想在离开片段时离开这些频道,当然,你可以取消订阅这些频道。

简而言之,您的PN客户端侦听器不需要超出范围并获得GC。

最新更新