2016-08-23 7 views
0

バックグラウンドで複数のスレッドを実行する永続的なバックグラウンドサービスの開始/停止を許可するテストアプリケーションを作成する必要があります。 (主にWebSocket ServerとTangoロケーションサービス)。私はWebブラウザを起動してwsソケットに接続できるように、永続的にする必要があります。Androidで永続マルチスレッドサービスを開始する正しい方法

次のように私が読んだものによると、アプリケーションは構造化されなければならない:

活動 - >サービス(永続) - >(サービス(タンゴ)+スレッド(WS))

永続的なサービスのニーズstartForeground()を使用してフォアグラウンドサービスとして実行され、別のプロセス(マニフェストで設定)として実行されるため、アクティビティが終了しても閉じられません。

質問: 1)私の現在の理解は正しいですか?あるいは私はこれに間違った方法で近づいています。 2)後でサービスを停止したい場合は、そのアクティビティを開始し、そこから停止することができます。アクティビティは、サービスが実行されていることをどのように認識し、どのようにサービスに接続していますか?バインディング部分を実装する必要がありますか?どうやって? 3)代わりに通知を使用して2)そこから閉じることができますか?

答えて

0

これは私が思いついた最高のもので、これまでのところうまくいくようです。しかし、誰かがこれ以上の「正しい」実装方法を持っていれば、その答えに変わります。

私が上に述べたものまで私が行った解決策は、唯一のことは、ポインタを渡すために新しいクラスでRunnableを実装しなければならなかったことです。 サービスのメインスレッドでネットワークコードが実行されないことは非常に重要です。ネットワークコードは別のスレッドに存在する必要があります。

関連する問題