タグ

ブックマーク / 319ring.net (1)

  • Android:Adapter.getViewでAsyncTaskは危険 | 自転車で通勤しましょ♪ブログ

    メモ書き程度に残しておこうと思います。 WebAPIと連携したアプリでListViewなどを使っていると、画像を遅延ロードすることがたくさんあると思います。そこで、ListView.getViewの動作を速くするためにViewHolderを使ったりなどのテクニックが紹介されていますが、そこでAsyncTaskを使って画像をDLする仕組みを使うのは危険です。具体的にいうと、キューを使わずに、ですが。 getViewは頻繁に呼ばれるメソッドです。リストをちょっとスクロールしても呼ばれますし、ソフトウェアキーボードの出し入れなど、画面描画に関するものが使われると怒濤の如くコールされます。今回は8行表示するところで、24回もgetViewが呼ばれ、8回しか呼ばれないと思っていたAsyncTaskが24回も呼ばれていました。スクロールしたらさらに呼ばれ続けて、スレッド数が多過ぎるというエラーでアプリ

  • 1