私のAndroidアプリケーションでは、ネットワーク関連のインテント(android.net.conn.CONNECTIVITY_CHANGE)をリッスンするブロードキャストレシーバがあります。 ネットワーク接続が変更されると、ブロードキャストレシーバーはインテントを受信し、新しい接続状態をサービスに渡す必要があります。このサービスは、デバイスの接続状態を追跡します。 次へ私は、デバイスとの接続状態を見つけるためにサービスと通信し、接続状態に基づいて何らかのアクションを実行する必要のあるアクティビティを持っています。 サービスを使用するブロードキャスト受信者との通信を処理し、次にサービスのアクティビティを処理する最善の方法は何でしょうか。Androidは、ブロードキャストレシーバとサービスとの通信を行い、アクティビティはサービスと通信します。
0
A
答えて
2
これを実行する方法はたくさんあり、「最良の方法」はありません。それは、これらのコンポーネント間で他にどのような通信が行われているかによって異なります。
Activity
は、Intent
のstartService()
に追加番号を使用してデータをService
に送信できます。
Service
Intent
Service
startActivity()
上に補足を使用して、
Activity
にデータを送信することができる放送
Intent
に補足を使用して、任意のコンポーネントにデータを送信することができます。他のコンポーネント(アクティビティ、ブロードキャストレシーバなど)は、からのデータをリッスンするために
BroadcastReceiver
を登録できます。
Activity
もActivity
とService
用いたメソッド呼び出し(AIDL)との間の2方向通信を可能にするService
に結合することができます。これらのメソッド呼び出しは、同期または非同期にすることができます。
コンポーネントがすべて同じプロセスで実行されている場合は、static
変数に状態を格納し、そのようにデータを共有できます。
アプリケーション全体を見て、コンポーネント間を移動するために必要なデータを確認し、それらの要件を満たすメソッドを選択する必要があります。
関連する問題
- 1. Android:アクティビティとサービスの通信
- 2. サービスとアクティビティ間の高速通信
- 3. Androidサービスと他のプロジェクトのアクティビティとの間の通信
- 4. 実行中のサービスと通信する
- 5. アスタリスク+ Android、通信サービス
- 6. Windowsサービスの通信とスレッド
- 7. GUIとWindowsサービスの通信
- 8. WindowsサービスとのServiceStack通信
- 9. 戦略パターンとAndroidサービス/ UIメッセージ通信
- 10. androidはアクティビティとブロードキャスト受信者の間で通信します
- 11. UWPアプリケーションとWindowsサービスとの通信
- 12. アンドロイドでのサービスとの通信のベストプラクティス
- 13. WebページとWebサービスの通信
- 14. Angular EventEmitterとサービス経由の通信
- 15. クライアントwinformとサーバーのWebサービス通信プロジェクト
- 16. Win32サービスとのプロセス間通信
- 17. WCFサービスとホストアプリケーション間の通信方法
- 18. サービスとViewController間の通信方法
- 19. Android:アクティビティとフラグメント間の通信
- 20. コンポーネントはサービスとルータを使用して通信しません
- 21. サービス発見可能性と通信
- 22. ReactとRestful WebサービスAPI通信
- 23. Windows PhoneエミュレータはローカルWebAPI 2サービスと通信しません
- 24. Android Best-Foregroundサービスと通信するための方法
- 25. Androidのサービス-活動2ウェイ通信
- 26. アクティビティとサービスの通信にgreenrobot EventBusを使用できますか?
- 27. androidとnodejsとの通信
- 28. WindowsサービスとWebサービス間のプロセス間通信
- 29. Android AlarmManagerと通信
- 30. SOAPサービスと通信しようとするMSF4Jマイクロサービス