android上的pubnub的最佳实践

Que*_*tin 8 service android publish-subscribe pubnub

我正在使用pubnub作为Android应用程序和服务器之间的发布/订阅通道.目前我正在考虑如何实现这一点.

我正在使用提供的用于android的库(https://github.com/pubnub/pubnub-api/tree/master/android),但我认为如果我现在使用它就会有一些应用程序生命周期问题.(如我错了请纠正我)

我正在考虑将其作为一项服务来实施

我想要的是

  • 该服务必须在最后一次使用应用程序后继续运行一小时(可协商).这是因为我们希望在收到消息时收到通知,但该应用程序不是当前使用的应用程序.

  • 如何在应用程序非活动一小时后停止服务?可能Android会杀了它,但我想要一些控制权.

  • 当特定消息进入时,服务必须能够触发应用程序更改其界面(当我们收到pubnub消息时,我正考虑从服务发送意图?),pubnub会将数据发送到服务,所以我需要一种方式将此数据传递给应用程序(可能将其保存在意图中的Bundle中?)

  • 我需要收听多个pubnub频道(同时最多2个),我想我必须在这个服务的多个实例中这样做吗?

我想我会这样做:

  • 创建应用启动时启动的服务

  • 让服务收听pubnub频道

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

  • 实现broadcasthandlers来监听这些内部意图

这是正确的方法吗?任何提示?

Ste*_*lum 10

你有一套很好的问题,我将在这个答案中谈到这些问题.您正在使用Android,并且您对PubNub发布/订阅方案的约定和最佳实践感兴趣.

您的用例非常常见,构建应用程序的最佳方式总是因应用程序需求而异.但是你肯定有正确的想法并且已经提出了所有正确的问题.您只需要一些示例代码和方向来开始实现应用程序需求的细节.要在列表中定义您的需求:

  • 连接/断开连接能力.
  • 永远在线的后台服务,可以发送/接收数据并通过Android Intents通知其他应用程序.
  • 同时连接到多个PubNub通道.

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

关于你的想法 - 这正确的方法:

  • 创建应用启动时启动的服务
  • 让服务收听PubNub频道.
  • 当收到消息时,发送意图并使用意图过滤器.
  • 实现BroadcastHandlers以侦听这些内部意图.

  • @AyrtonSenna后台服务要求您的移动无线电接收器在接收TCP流量之前处于活动状态.这意味着您必须在Android清单上使用4级唤醒锁.你必须为GCM做同样的事情.与GCM相比,PubNub实时网络需要减少多达5%的电池消耗,这是惊人的.你提到的5分钟唤醒并不重要,因为在这种情况下,WakeLock设置更有趣. (2认同)