0

各行に 4 枚の写真を含むListViewと、それらすべての写真のダウンロードを処理する写真ダウンロード マネージャーがあります。ListView に到着したときにあまりにも多くのスレッドが作成されたため、写真をダウンロードするスレッドの数を制限しました (以前は : 1 行あたり 4 枚の写真 * 5 または 6 行表示 => 20/25 スレッド、および + の場合スクロールします)

そのため、UI スレッドがビジー状態になり、写真の読み込み中にアイテムをクリックすると、OnItemClickEventがスキップされることがあり、ユーザーはクリックのダウンロードの終了を狂ったように待たなければなりません。

そのようなスキップされたイベントを回避する方法はありますか?

更新: 写真がダウンロードされるたびにブロードキャストを送信し、ListViewアダプターでnotifyDataSetChangedを送信しています。

4

1 に答える 1

3

画像をダウンロードするために20/25 スレッドを作成するのは、悪い考えです。

AsyncTaskUIThreadがブロックされないように、これらの画像をダウンロードするために使用する必要があると思います。

また、 Fedor LazyListによる遅延読み込みリストを使用することもできます。

Android の ListView への画像の遅延読み込みを見てください。

SO 質問Android - ListView で画像の遅延読み込みを行うにはどうすればよいですか

痛みのないスレッディング

于 2011-12-21T10:28:47.707 に答える