私はこのアイデアの周りに私の頭をラップするいくつかの問題を抱えている、と私はいくつかの入力をしたい。私は新しいスレッド(この場合はRunnableを実装しているクラスで、スレッドは拡張していないクラス)を実行する私の初期のアクティビティからサービスを開始しています。それはonCreate()
です。スレッドはまず、TCPクライアントソケットを作成し、アプリケーションの実行、アクティビティの切り替えなど、バックグラウンドでリクエストを送信してX秒ごとに応答を受信し始めます。ただし、すべてのアクティビティからスレッドにアクセスできるようにする必要があります。 UIエレメントがトリガーされたときにカスタムリクエストを送信することができます。サービスは静的コンテキストからアクセスできますが、実行中のスレッドインスタンスにアクセスしようとすると、メインスレッドでネットワーク操作を実行する際にエラーが発生します。つまり、実際のインスタンスではなく、アクセスしているUIスレッドです。私はサービスが新しいメッセージをポーリングできる共有Application
クラスのメッセージキューを実装することを考えましたが、それは醜いようです。たぶん私はこの間違いを犯しているだろうし、この問題に近づくためのより良い/よりクリーンな方法があるだろうか?助言や助けをいただければ幸いです。スレッドにアクセスするサービスによって開始
1
A
答えて
1
Looper/Handlerメカニズムを使用してスレッドにメッセージを送信できます。
+0
ありがとうございます、これは私が入ってきた方向です、そして、それは完全に動作するようでした。何らかの理由で私は最初にそれを見落としました。 – Matt
関連する問題
- 1. Windowsサービスによる同時スレッドの開始と停止
- 2. boot_completedサービスとstartForeground開始サービスにスレッドが必要ですか?
- 3. ウィジェットによって開始されたサービスのRoboGuiceインジェクション
- 4. サービスでスレッドにアクセスする
- 5. スレッドのrun()で新しいサービスを開始するには?
- 6. Java Webサービス操作のスレッドを作成して開始する
- 7. C#プログラムによるWindowsサービスの開始
- 8. スレッドとスレッド開始
- 9. デーモンスレッドによって開始されたスレッドはデーモンスレッドでもありますか?
- 10. _beginthreadexでスレッドを開始するには?
- 11. スレッドで複数のサービスを開始する
- 12. Windows CE 6.0サービスでスレッドを開始する
- 13. AsyncTaskはサービスによって開始されますか?サービスが停止すると終了しますか?
- 14. WCFサービスを開始するには?
- 15. スレッドが開始パラメータを持つときにスレッドを開始して結合する
- 16. C#スレッド - スレッドを開始および停止する方法
- 17. サービスの開始を待っているTFS
- 18. systemd:サービスに開始/終了を渡す
- 19. Androidサービス - サービスを開始して別のアクティビティにリダイレクト
- 20. Windowsサービスを開始
- 21. Android NFC開始サービス
- 22. 新しいスレッドでサービスを開始するにはどうすればよいですか?
- 23. 独自のクラスメソッドの開始スレッドはISOによって禁止されていますか?
- 24. ブロードキャスト受信機によるサービスの自動開始
- 25. インテントとインスタンスの作成によるAndroidサービスの開始
- 26. Androidでアラームマネージャを使用してサービスを開始するには?
- 27. ウィジェットボタンをクリックしてサービスを開始するには?
- 28. サービスを開始してデータを返す
- 29. プッシュボタンでスレッドを開始する
- 30. サービスが正常に開始しない
いいえ、あなたは正しい方向に向かっています。そのメッセージキュー( 'BlockingQueue')を使ってスレッドと通信します。 –
AIDL(http://developer.android.com/guide/developing/tools/aidl.html)を使用してサービスと通信することができます – ethrbunny