8

Android アプリとサーバー間のパブリッシュ/サブスクライブ チャネルとして pubnub を使用しています。現在、これをどのように実装するかを考えています。

Android用に提供されているライブラリ(https://github.com/pubnub/pubnub-api/tree/master/android)を使用していますが、今のように使用するとアプリケーションのライフサイクルに問題があると思います. (間違っていたら訂正してください)

サービス化を考えていた

私が欲しいもの

  • サービスは、アプリを最後に使用してから 1 時間 (応相談) まで実行し続ける必要があります。これは、メッセージが着信したときに通知を受け取りたいのですが、アプリが現在使用されているアプリではないためです。

  • アプリを 1 時間使用しなかった場合、サービスを停止するにはどうすればよいですか? おそらくAndroidはそれを殺しますが、私はいくつかの制御が必要です.

  • サービスは、特定のメッセージが届いたときにアプリをトリガーしてインターフェイスを変更できる必要があります (pubnub メッセージを受信したときにサービスからインテントを送信することを考えていましたか?)、pubnub はサービスにデータを送信するため、方法が必要です。このデータをアプリケーションに渡す (おそらくインテントでバンドルに保存しますか?)

  • 複数の pubnub チャンネル (同時に最大 2 つ) を聞く必要があります。このサービスの複数のインスタンスでこれを行う必要があると思いますか?

私は次のようにすると思います:

  • アプリの起動時に開始されるサービスを作成する

  • サービスが pubnub チャネルをリッスンできるようにする

  • メッセージが届いたら、インテントを送信し、インテント フィルターを使用します

  • これらの内部インテントをリッスンするブロードキャスト ハンドラを実装する

これはこれを行う正しい方法ですか?ヒントはありますか?

4

1 に答える 1

10

この回答で説明する詳細なポイントと優れた一連の質問があります。あなたは Android を使用しており、PubNub のパブリッシュ/サブスクライブ シナリオの規則とベスト プラクティスに関心があります。

あなたのユースケースは非常に一般的であり、アプリを構築するための最良の方法は、アプリケーションのニーズによって常に異なります。しかし、あなたは間違いなく正しい考えを持っており、すべての正しい質問をしています。アプリケーションのニーズの詳細の実装を開始するには、いくつかのサンプル コードと指示が必要でした。リストでニーズを定義するには:

  • 接続/切断能力。
  • データを送受信し、Android Intent を介して他のアプリに通知できる常時バックグラウンド サービス。
  • 複数の PubNub チ​​ャネルに同時に接続する。

開始するには、いくつかの例とメソッドへの直接リンクを提供します。

あなたの考えについて - これは正しい方法です:

  • アプリの起動時に開始されるサービスを作成する
  • サービスが PubNub チ​​ャネルをリッスンできるようにします。
  • メッセージが届いたら、インテントを送信し、インテント フィルターを使用します。
  • これらの内部インテントをリッスンするには、BroadcastHandlers を実装します。
于 2012-03-07T20:59:38.447 に答える