状況:
私はある種のフォトフレームアプリ(ユーザーが選択できる16のフレームがあります)であるアプリを開発しています。
- 最大 5 つの ListView を持つ ViewPager。(オフスクリーン制限は 1 に設定されているため、3 つの ListView のみがメモリ内にあると想定できます)
- 各 ListView には 17 のビュー タイプがあります (16 フレーム + ローディング ビュー)
Android が画面外の行を convertView としてメモリに保存することは誰もが知っています。したがって、私の状況では、最悪の場合、最終的に 17 個の convertViews * 3 ListView = 51 個のビューがメモリに表示される可能性があります (おそらく少ないか、多いか、重要ではありません)。
単純な 51 ビューは多くのメモリを消費しません (私は推測します)。私のビューはすべてまともなビットマップでいっぱいです。これはかなり大きなメモリ消費です。
質問:
ビューが画面外になる (または convertView になる) ことを検出して、ドローアブルへの参照を即座に解放できる方法はありますか?
私の進捗状況:
スクラップビューを RecycleBin に入れる際に AbsListView の adt バンドルのソース コード (Api 16) を見てきました。検出はそこで実行できると思いますが、それにはクラス全体をカスタマイズする必要があります。私の心配は、古い Api が Api 16 内の何をサポートできないかということです。そのため、他のより良いオプションがあるかどうかを確認するためにここに質問しています。
お時間をいただきありがとうございます。