繁体   English   中英

android kotlin pubnub sdk 有时不起作用

[英]android kotlin pubnub sdk sometimes does not work

我正在使用 pubnub android kotlin sdk 聊天 ZC1C425268E68385D1AB5074C17A94。 但是,我有 3 个不同的片段,我在这些片段上使用了 pubnub 的功能。 H

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

3 个不同的片段上有多个通道。 一个片段用于一对一消息,另一个片段用于群消息。 每当我打开片段时,我都会在每个片段上订阅频道,但在离开片段时不要取消订阅。 目前,当我打开第一个片段进行一对一消息传递时,我的 pubnub 运行良好,但是当我打开另一个片段进行群组消息传递时,第一个片段上的侦听器停止侦听传入的消息或事件。

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

PubNub 客户端 object 和 SubscribeCallback 监听器 scope

如果您想通过输入和离开的每个片段保持订阅频道,您需要在应用程序 scope ( MainActivity ,也许,作为单例)或一些 Z3A851A1FD1140BE411E140BE41E12 以上的应用程序中创建PubNub 客户端 object和 * SubscribeCallback 侦听器* Fragments的 scope,就像包含这些FragmentsView一样,假设Fragments在同一个View中,如果不是,则移动到下一个最高的 scope(活动)。

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

如果您想在离开它们所属的Fragment时离开这些频道,当然,您可以取消订阅这些频道。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM