2

Androidでは、UIの変更のすべてをUIスレッドに配置しないと、大きな問題が発生します。Swingでも同じくらい重要ですか?Android向けにプログラミングする前に、リコールされたUIThreadを使用したことはありません。SwingのUIスレッドでUIを変更することになっていますか?

4

3 に答える 3

6

はい、UIでアクションを実行するときは、Javaでイベントスレッド(UIスレッド)を使用する必要があります。

参照:イベントディスパッチスレッド

于 2012-06-15T02:11:14.833 に答える
3

Android UIツールキットはスレッドセーフではないため、常にUIスレッドで操作する必要があります。

Androidには、他のスレッドからUIスレッドにアクセスするためのいくつかの方法があります。

Swingについても同じことが言えます。ドキュメントから、

スレッドセーフに関する注意:Javaプラットフォームのこのような重要な部分がスレッドセーフではないのは奇妙に思えるかもしれません。スレッドセーフなGUIライブラリを作成しようとすると、いくつかの根本的な問題に直面することがわかります。この問題の詳細については、Graham Hamiltonのブログの次のエントリを参照してください。マルチスレッドツールキット:失敗した夢?

于 2012-06-15T02:03:07.047 に答える
0

一般に、ほとんどの言語またはユーザーインターフェイス(iPhone、Androidなど)では、UIの更新は、UI要素へのアクセスを制御するメインスレッドまたは少なくともいくつかのセカンダリスレッドで行う必要があります。

于 2012-06-15T01:59:57.027 に答える