コアロジックを実装し、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. Android TCPクライアント&UIスレッド
- 7. プレゼンテーション(HTML)とロジック(PHP)を別々に保つ
- 8. ZygoteとAndroidのUIスレッドの関係
- 9. UI要素のC#別スレッド
- 10. UIから別のスレッド
- 11. ワーカースレッドとUIスレッドの使用
- 12. UIスレッドを使用したAndroid RMI
- 13. TextViewとButtonを別々のUIセグメントに含むMapFragment
- 14. 個々のスレッドごとに個別のログファイルに記録する
- 15. AndroidとDo Handlerのハンドラとスレッドの違いは、別々のスレッドを作成しますか?
- 16. UIスレッドとは別のスレッドでビューを使用しています。
- 17. AndroidデータベースonUpgradeブロッキングUIスレッド
- 18. スレッドがフリーズするUI - Android
- 19. MVCビジネスロジックと表示/ UIロジック
- 20. タブごとに別々のコントローラを持つ角度uiタブ
- 21. 別のFloatingActionButtonロジック別のクラスのロジック
- 22. バックグラウンドスレッドとUIスレッド
- 23. 別のUIスレッドでのWPFコントロール?
- 24. UIスレッドとハンドラを使用する他のスレッドとの通信
- 25. UIスレッドのコールバック用OPTIONALLYデザインパターン
- 26. Android Instrumentation Testing - UIスレッドの問題
- 27. C#:別のスレッドからUIスレッドのダイアログを表示
- 28. 個別のJavaFX GUIとロジック
- 29. イベントドリブンデザインとコア/ UIロジックの分離
- 30. jscript ui steps計算とロジックの問題
私はそれのサンプルコードを教えてくれますか?キューを使用しています。 –
"サンプルコード"ほどシンプルではありません。私の実装は、いくつかのクラスと数百行のコードにまたがっています。私はそれを擬似コードで記述し、私がタスクを達成するために使用したフレームワークのオブジェクトを教えてもらえますが、スプーンに公開されているものはあなたの実装をフィードするものではありません。 – Rich