コアロジックを実装し、GUIを更新するために、別々のスレッドを作成します。 両方のスレッドは、それらと直接データを共有すべきではありません。このために、私は同期get()とput()メソッドを持つベクトルキューを作成したいと思います。 onClickイベントがGUIスレッドで発生した場合、OnClickイベントを受け取ったことをコアスレッドに通知します。したがって、コアスレッドは何かを実装し、その結果をベクトルに入れます。この時点で、GUIスレッドは受け取った結果を通知され、GUIスレッドはそれを取り出して画面を更新する。 これを行う方法を理解できません。これを実装する方法はありますか?UIとロジック用に別々のスレッド - Android
0
A
答えて
0
これは、他のフレームワークや環境と同様に行うことができます。 AndroidのAPIは、あなたが記述したような(AsyncTask、Handler/Thread/Runnableなど)マルチスレッドアプリケーションを扱うための高度な方法を提供しますが、独自の処理キューでこれらをラップすることもできます。私は最近、処理のために論理キューを作成し、キューに何かをプッシュすると、アイテムのキューをチェックし、バックグラウンドスレッドでそれらを処理するメソッドを実行します。ブロードキャストインテントを送信し、アクティビティレベルでIntentFiltersを登録することで(登録を忘れないでください)、またはAndroid UIフレームワークがUIイベントを使用して行う方法と同じ方法で独自のリスナインタフェースを実装することで、処理が完了したときにシステムに通知できます。
AsyncTaskは、バックグラウンドスレッドとメインUIスレッド間の呼び出しを簡単に行います。 onPreExecute、onProgressUpdatedおよびonPostExecuteはすべてUIスレッドで実行され、doInBackgroundは自動的に作成されるバックグラウンドスレッドで実行されます。それよりも簡単には得られません
関連する問題
- 1. AndroidスレッドとUI
- 2. AndroidサービスとUIスレッド
- 3. AndroidのUIスレッドと子スレッドの通信
- 4. Androidサービス、スレッド、UI
- 5. UIスレッドのAndroid MediaPlayer
- 6. UIから別のスレッド
- 7. Android TCPクライアント&UIスレッド
- 8. 個々のスレッドごとに個別のログファイルに記録する
- 9. UIスレッドを使用したAndroid RMI
- 10. AndroidとDo Handlerのハンドラとスレッドの違いは、別々のスレッドを作成しますか?
- 11. UIスレッドとは別のスレッドでビューを使用しています。
- 12. タブごとに別々のコントローラを持つ角度uiタブ
- 13. 別のUIスレッドでのWPFコントロール?
- 14. バックグラウンドスレッドとUIスレッド
- 15. アンドロイドモバイルデバイスとタブレットで別々のUIを作成する方法
- 16. jscript ui steps計算とロジックの問題
- 17. イベントドリブンデザインとコア/ UIロジックの分離
- 18. C#:別のスレッドからUIスレッドのダイアログを表示
- 19. Android Instrumentation Testing - UIスレッドの問題
- 20. mutilpleタイマーでスレッドを別々の信号にする
- 21. 別のクラスの別のスレッドからUIを更新する
- 22. Android:複数のスナックバー(別々のフラグメント(ViewPager))
- 23. さらに別のロジック
- 24. 私はC#ののWinFormsアプリに別々のスレッドでこのコードを実行している別のスレッド
- 25. タブとフラグメント、別々のバックスタック
- 26. C#別のスレッドからのメインUIスレッドのウィンドウフォームを閉じるには
- 27. Java Android:1つのスレッドから別のスレッドにデータを送信
- 28. 別のスレッドからUIオブジェクトにアクセスするには?
- 29. スレッド、乱数ジェネレータを別々にシードする方法は?
- 30. Android ViewPager複数のフラグメントクラス(別々のレイアウトファイルを使用)
私はそれのサンプルコードを教えてくれますか?キューを使用しています。 –
"サンプルコード"ほどシンプルではありません。私の実装は、いくつかのクラスと数百行のコードにまたがっています。私はそれを擬似コードで記述し、私がタスクを達成するために使用したフレームワークのオブジェクトを教えてもらえますが、スプーンに公開されているものはあなたの実装をフィードするものではありません。 – Rich