誰かが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. iOSの非UIスレッドからUIラベルを更新する方法
- 2. WinFormsでは、なぜ他のスレッドからUIコントロールを更新できないのですか?
- 3. なぜ私は自分のスレッドで自分のUIを更新できないのですか?
- 4. UIスレッドを更新するワーカースレッドのCountdownTimer
- 5. AndroidのUIが更新されない
- 6. スレッドをUIから更新する
- 7. ポータブルクラスライブラリのUIスレッドを更新します
- 8. BackgroundWorkerがUIコンポーネントを変更するのはなぜですか?
- 9. WinForms UIを更新するBackgroundWorkerスレッド
- 10. UIスレッドのAndroid MediaPlayer
- 11. 非UIスレッドがビュープロパティを変更できないのはなぜですか?アンドロイドで
- 12. 外部UIスレッドからgridviewを更新
- 13. 別のクラスの別のスレッドからUIを更新する
- 14. AndroidのUIをメモリリーフなしで更新する
- 15. アンドロイドの別のスレッドからuiを更新する
- 16. AndroidスレッドとUI
- 17. Androidサービス、スレッド、UI
- 18. UIスレッドからSerialDevice.FromIdAsyncを開く必要があるのはなぜですか?
- 19. アンドロイドの非UIスレッドからUIを更新するにはどうすればよいですか?
- 20. アンドロイドでUIスレッドを更新するには
- 21. 他のスレッドからUIを更新する
- 22. 他のスレッドからUIを更新する
- 23. ワーカースレッドがMotorola V3のUIを更新できない
- 24. UIスレッドで更新されるストップウォッチを作成する
- 25. AndroidのUIスレッドと子スレッドの通信
- 26. AndroidサービスとUIスレッド
- 27. Android TCPクライアント&UIスレッド
- 28. UIスレッドとEclipseの他のスレッドの両方で機能するUI更新メソッドを実装するにはどうすればよいですか?
- 29. UIのテキストをAndroidのバックグラウンドスレッドから更新する方法
- 30. UIスレッドの特色は何ですか?
これは私が今まで見たことのあるほとんどすべてのUIフレームワークです。 –
参照:http://stackoverflow.com/questions/5544447/why-are-most-ui-frameworks-single-threaded – Boann