2012-03-07 29 views
8

我使用pubnub作爲android應用程序和服務器之間的發佈/訂閱頻道。 目前我正在考慮如何執行此操作。我使用android提供的庫(https://github.com/pubnub/pubnub-api/tree/master/android),但我認爲如果現在使用它,應用程序生命週期中會出現一些問題。 (糾正我,如果我錯了)在android上使用pubnub的最佳做法

我想實現IT即服務的

我想要什麼

  • 的服務必須繼續運行,直到一個小時(可轉讓)後最後一個應用使用情況這是因爲我們希望在收到消息時收到通知,但該應用不是當前使用的應用。

  • 如何停止一小時的應用程序非活動後的服務?可能Android會殺死它,但我想要一些控制。

  • 服務必須能夠在特定消息進來時觸發應用程序更改它的接口(當我收到pubnub消息時,我正在考慮從服務發送intents?),pubnub將數據發送到服務,所以我需要一種方式將這些數據傳遞給應用程序(可能將它保存在一個捆綁的意圖?)

  • 我需要聽多個pubnub頻道(同時最多2個),我想我會必須在此服務的多個實例中執行此操作?

我想我會做這樣的:

  • 創建要啓動的服務時,應用程序啓動

  • 讓服務聽pubnub通道

  • 當消息進入時,發送意圖並使用意圖過濾器

  • 實施broadcasthandlers聽這些內部意圖

這是這樣做的正確方法?任何提示?

回答

10

您有一系列優秀的問題,我會在這個答案中詳細討論。您正在使用Android,並且您對PubNub發佈/訂閱方案的約定和最佳做法感興趣。

您的用例非常常見,構建應用程序的最佳方式始終因應用程序需求而異。然而,你絕對有正確的想法,並已提出所有正確的問題。您只需要一些示例代碼和一個方向即可開始實現應用程序需求的特定細節。要在列表中定義您的需求:

  • 連接/斷開能力。
  • 可以通過Android Intents發送/接收數據並通知其他應用程序的始終在線後臺服務。
  • 同時連接到多個PubNub頻道。

所以上手,我會爲您提供直接鏈接到一些實例和方法:

關於您的想法 - 這IS做的正確方法:

  • 創建要啓動的服務時,應用程序啓動
  • 讓服務聽PubNub通道。
  • 當消息進入時,發送一個意圖並使用意圖過濾器。
  • 實施BroadcastHandlers來收聽這些內部意圖。
+1

鏈接已損壞。你知道這些項目是否仍然可用? – 2012-07-01 13:22:51

+1

我發現它在github !: https://github.com/pubnub/pubnub-api/tree/0dfd8028b803332f5641adc909b1a26f87bd7ff1/android/PubnubAndroid – Pipeline 2012-11-16 08:24:35

+0

服務每5分鐘醒來以確保服務保持活着,這是否會耗盡電池?這是什麼發生與其他聊天應用程序,如WhatsApp? – 2014-01-29 02:51:20