Android上使用PubNub的最佳实践

8
我正在使用PubNub作为Android应用程序和服务器之间的发布/订阅通道。目前,我正在考虑如何实现它。
我正在使用提供的Android库(https://github.com/pubnub/pubnub-api/tree/master/android),但是如果按照现在的方式使用它,我认为会存在一些应用程序生命周期方面的问题。(如果我错了,请纠正我)
我正在考虑将其实现为一个服务。
我的要求是:
  • 服务必须保持运行,直到最后一次应用使用后的一个小时(可商议)。这是因为我们希望在收到消息时收到通知,但应用程序不是当前正在使用的应用程序。

  • 如何在应用程序非活动状态一小时后停止服务?可能Android会将其杀死,但我想要一些控制。

  • 服务必须能够在特定消息到达时触发应用程序更改其界面(我想从服务发送意图当我们接收到pubnub消息时?),pubnub将向服务发送数据,因此我需要一种将此数据传递给应用程序的方法(可能将其保存在意图中的Bundle中?)

  • 我需要监听多个pubnub频道(最多同时2个),我认为我将不得不在此服务的多个实例中执行此操作?

我想我会像这样做:

  • 创建一个服务,该服务在应用程序启动时启动

  • 让服务监听pubnub频道

  • 当消息到达时,发送意图并使用意图过滤器

  • 实现广播处理程序以侦听这些内部意图

这是正确的方法吗?有什么提示吗?

1个回答

10

你提出了一些优秀的问题和详细的观点,我将在本答案中讨论。您正在使用Android,并且对PubNub发布/订阅惯例和最佳实践感兴趣。

您的用例非常常见,构建应用程序的最佳方法始终取决于应用程序需求。但是,您肯定有正确的想法并问了所有正确的问题。您只需要一些示例代码和方向来开始实施应用程序需求的具体内容。要列出您的需求:

  • 连接/断开连接能力。
  • 始终运行的后台服务,可以通过Android Intents发送/接收数据并通知其他应用程序。
  • 同时连接到多个PubNub频道。

因此,为了开始,我将为您提供一些示例和方法的直接链接:

关于您的想法 - 这是正确的做法:

  • 创建一个在应用程序启动时启动的服务
  • 让该服务监听一个 PubNub 频道。
  • 当收到消息时,发送意图并使用意图过滤器。
  • 实现广播处理程序以侦听这些内部意图。

1
链接已损坏。你知道这些项目是否还可用吗? - Bill the Lizard
1
我在Github上找到了它!:https://github.com/pubnub/pubnub-api/tree/0dfd8028b803332f5641adc909b1a26f87bd7ff1/android/PubnubAndroid - Pipeline
2
@AyrtonSenna 背景服务需要在接收 TCP 流量之前激活您的移动无线电接收器。这意味着您必须在 Android 清单上使用 Level 4 Wakelock。对于 GCM,您也必须这样做。与 GCM 相比,PubNub 实时网络需要的电池耗电量少了多达 5%,这是非常惊人的。您提到的 5 分钟唤醒时间在这种情况下并不重要,因为 WakeLock 设置更有趣。 - Stephen Blum
1
@PubNub 收到了。谢谢您的迅速回复! - Ayrton Senna
1
@pubnub,您能否更详细地阐述一下同时连接到多个PubNub频道的方法?在Android上使用复用是一个真正的需求。来自PubNub团队的一些指导将会有所帮助。谢谢。 - sirvon
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接