在android上使用pubnub的最佳实践

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

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

我正在考虑把它作为一项服务来实施

我想要的是

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

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

  • 服务必须能够触发应用程序改变它的接口,当特定的消息进来(当我收到一个pubnub消息时,我正在想从服务发送意图?),pubnub将发送数据到服务,所以我需要一种方式将这些数据传递给应用程序(可能将其保存在Bundle中)

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

我想我会这样做:

  • 创build一个在应用程序启动时启动的服务

  • 让服务监听一个pubnub频道

  • 当消息进入时,发送意图并使用意图filter

  • 实施广播处理员来倾听这些内部意图

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

Solutions Collecting From Web of "在android上使用pubnub的最佳实践"

你有一个很好的一套问题,我将在这个答案中谈论详细的观点。 您正在使用Android,并且对PubNub发布/订阅scheme的约定和最佳做法感兴趣。

您的用例非常普遍,构build应用程序的最佳方式总是根据应用程序需求而变化。 然而,你绝对有正确的想法,并已经问了所有正确的问题。 您只需要一些示例代码和一个方向就可以开始实现您的应用程序需求的细节。 要在列表中定义您的需求:

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

所以要开始我会给你提供一些例子和方法的直接链接:

  • 创buildAndroid启动时启动的服务: https : //github.com/pubnub/pubnub-api/blob/0dfd8028b803332f5641adc909b1a26f87bd7ff1/android/PubnubAndroid/src/com/aimx/androidpubnub/BootReceiver.java
  • 取消订阅/断开示例代码,当你想停止收听PubNub频道时: https : //github.com/pubnub/pubnub-api/blob/0dfd8028b803332f5641adc909b1a26f87bd7ff1/android/PubnubAndroid/src/com/aimx/androidpubnub/MainActivity.java -通过在一个线程中放置阻塞的pubnub.Subscribe()方法来轻松地收听多个频道。

关于你的想法 – 这做到这一点的正确方法:

  • 创build一个在应用程序启动时启动的服务
  • 让服务监听PubNub频道。
  • 当消息进入时,发送意图并使用意图filter。
  • 实现BroadcastHandlers来收听这些内部意图。