誰かがUIのスレッドをUIで更新できる理由を教えてください。 他のスレッドでUIを更新できないのはなぜですか?AndroidのUIスレッドのみがUIを更新できるのはなぜですか?
5
A
答えて
8
Documentation外 からAndroidのUIツールキットにはアクセスしないでくださいUIスレッドをブロックしないでくださいAndroidのUIツールキットがあると述べていますthread-safeではありません。したがって、単一スレッドモデルは、同時に異なるスレッドによってUIが変更されないことを保証する。
3
スレッドに関するandroid developperガイド上に述べたように:あなたのアプリがユーザーとの対話に応じて、集中して作業を行う場合、あなたが適切にあなたのアプリケーションを実装していない限り、このシングルスレッドモデルは、パフォーマンスの低下をもたらすことができる
。具体的には、UIスレッドですべてが発生している場合、ネットワークアクセスやデータベースクエリなどの長い操作を実行するとUI全体がブロックされます。スレッドがブロックされると、描画イベントを含むイベントはディスパッチできません。ユーザーの観点から見ると、アプリケーションはハングアップしているようです。さらに悪いことに、UIスレッドが数秒(現在は約5秒)以上ブロックされていると、ユーザーに悪意のある "応答しないアプリケーション"(ANR)ダイアログが表示されます。ユーザーはアプリケーションを終了し、不満足な場合はアンインストールすることにします。
さらに、Andoid UIツールキットはスレッドセーフではありません。そのため、 ワーカースレッドからUIを操作しないでください。すべての操作をUIスレッドからユーザーインターフェイスに行う必要があります。したがって、 は、単にAndroidのシングルスレッドモデルには2つのルールがあります。
UIスレッド
関連する問題
- 1. c#WPF UIがハングするUIスレッドのデータを更新する
- 2. WinFormsでは、なぜ他のスレッドからUIコントロールを更新できないのですか?
- 3. iOSの非UIスレッドからUIラベルを更新する方法
- 4. なぜ私は自分のスレッドで自分のUIを更新できないのですか?
- 5. UIスレッドを更新するワーカースレッドのCountdownTimer
- 6. UIの更新コードからのスレッド
- 7. スレッドをUIから更新する
- 8. AndroidのUIが更新されない
- 9. スレッド内のUIを更新する(Androidスタジオ/ JAVA)
- 10. ポータブルクラスライブラリのUIスレッドを更新します
- 11. スレッドがフリーズするUI - Android
- 12. UIスレッドのAndroid MediaPlayer
- 13. BackgroundWorkerがUIコンポーネントを変更するのはなぜですか?
- 14. 非UIスレッドがビュープロパティを変更できないのはなぜですか?アンドロイドで
- 15. WinForms UIを更新するBackgroundWorkerスレッド
- 16. 私のUIが更新されないのはなぜですか?
- 17. 外部UIスレッドからgridviewを更新
- 18. 私の非同期タイマーがUIスレッドをブロックするのはなぜですか?
- 19. AndroidでAsynckTaskでUIを更新できない
- 20. 別のクラスの別のスレッドからUIを更新する
- 21. Androidの背景タスクがUIスレッドをフリーズさせる - Firebaseを更新する
- 22. Androidサービス、スレッド、UI
- 23. AndroidスレッドとUI
- 24. UIスレッドからSerialDevice.FromIdAsyncを開く必要があるのはなぜですか?
- 25. カスタムビューからAndroid UIを更新する
- 26. angle-ui-gridのgridApi.on.edit.beginCellEditで新しいドロップダウンオプションを即座に更新できないのはなぜですか?
- 27. AndroidのUIをメモリリーフなしで更新する
- 28. アンドロイドの別のスレッドからuiを更新する
- 29. アンドロイドの非UIスレッドからUIを更新するにはどうすればよいですか?
- 30. アンドロイドでUIスレッドを更新するには
これは私が今まで見たことのあるほとんどすべてのUIフレームワークです。 –
参照:http://stackoverflow.com/questions/5544447/why-are-most-ui-frameworks-single-threaded – Boann