3

APIレベル10(2.3.3)用のAndroidアプリケーションを開発しています。私のアプリケーションでは、0〜25の値を持つ1つのシークバーを使用できます。

私の問題は、シークバーを進めているときに、複数のビューを更新していることです。ビューはUIスレッドからのみ更新できるため、すべてのビューが同期的に更新されるということは、1つずつ意味します。ビューが更新されていることがわかります。私のアップデートには、バックグラウンド作業は必要ありません。

だから私の質問は、ビューを同時に更新する方法はありますか?たとえば、15のビューがある場合、いくつかのスレッドにまたがるなどして、すべてを同時に更新できますか?

前もって感謝します。

4

3 に答える 3

1

おっしゃるように、更新はUIスレッドからのみ実行でき、UIスレッドは1つのビューのみを処理できます。ですから、1つずつ更新するしかないのです。ただし、すべての更新を1つの実行可能ファイルに入れると、通常、更新のプロセスは表示されません。

于 2012-07-04T12:07:39.360 に答える
0

これについて尋ねるのは確かではありませんが、AsyncTaskとdoInBackgroundはこれに対して機能します。また、バックグラウンドタスクが完了したら、onPostExecuteからシークバーを更新できます。ただし、シークバーのあるコンテキストを実行する必要があります。

于 2012-07-04T11:39:00.337 に答える
0

不可能です。

UIスレッドの外部からUIコンポーネントを実際に更新できると考えてみましょう(これはできません)。それが同時に行われることはありません。

スレッド1が100回の操作t1o1t1o2、...、t1o100を作成し、スレッド2がt2o1t2o2、...、t2o100を作成するとします。

両方を実行すると、次のような順序で実行されます。

t1o1

t2o1

t1o2

t1o3

t2o2

...。

両方のスレッドが同時に実行されていますが、2つの操作が同時に実行されているわけではありません。

于 2012-07-04T12:19:41.373 に答える