0

質問

Messageオブジェクトへの投稿と削除を繰り返すことHandlerは容認できると見なされますか? このメカニズムを使用して、コールバックが複数回発生した後、特定の遅延を待ちます。

バックグラウンド

かなり複雑なビューを持つ ListView があります。各ビューには、いくつかのテキスト コンポーネントとかなり大きな ImageView があります。スクロール中のぎこちなさを解決しようとしています。

誤った描画を減らすために、描画キャッシュを使用するように変換済みです。スクロールが停止するまで、ImageView でのビットマップの読み込みを遅らせるメカニズムを追加しました。

このメカニズムは ListView を使用しますOnScrollListener.onScroll(...)(信頼できないことがわかっonScrollStateChanged(...)たため)。onScrollが発火するたびに、同じタイプの既存のメッセージを削除した後MessageHandlerを使用して投稿します。postDelayed(message, 200)

その結果、一連の投稿と削除が行われ、Handler最終的に 1 つが処理されると、すべての画像が読み込まれます。Handler からのメッセージの投稿と削除を繰り返すと問題が発生するのでしょうか? まだヒットしていませんが、代替案があれば聞きたいです。

4

1 に答える 1

0

システムがビジー状態になるまで、メッセージの追加と削除にコストはかかりませんでした。その後、メインスレッドが描画に巻き込まれるため、信頼できなくなりました。代わりに、通知が必要なコンポーネントのオン/オフ メカニズムに切り替えました。これにより、多くの問題が軽減されたようです。

于 2013-02-22T01:56:16.117 に答える