0

たくさんのカスタムビューといくつかのカスタムListAdapterを含むかなり気の利いたMergeAdapterがあります。このMergeAdapterは、x秒ごとに更新されるコンテンツを表示するListActivityを駆動します。

現在、新しいMergeAdapterを作成し、すべてのカスタムビューを作成して追加し(これにはいくつかのImageViewが含まれます)、アクティビティのListViewでsetAdapterを呼び出します。

約10分の更新後、ヒープスペースが不足してクラッシュしました。

最終的には、新しいImageViewが追加され、次の例外がスローされるためです。

Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

より単純なアダプター(ArrayAdapterなど)では、データセットを更新して呼び出します

notifyDataSetChanged()

アダプター上。

MergeAdapterを「更新」するための同様の/推奨されるアプローチはありますか?または、複雑になる可能性のあるMergeAdapterのコンテンツを調べて、個々のビューを更新する必要がありますか?

4

1 に答える 1

0

MergeAdapterを「更新」するための同様の/推奨されるアプローチはありますか?

notifyDataSetChanged()作品、AFAIK。currentには、その内部MergeAdapterからの変更への関心を登録したものに変更をリップルするコードがあります。これはおそらく十分にテストされていないので、別の方法を示すサンプルアプリがある場合は、そのアプリへのリンクを投稿するか、私に送信してください(このSOの質問に言及してください)。ListAdaptersMergeAdapter

于 2011-08-30T07:15:20.867 に答える