簡體   English   中英

ViewHolder類和OOM管理

[英]ViewHolder Class and OOM Management

使用ViewHolder類是否可以防止泄漏和大堆保留?

   class holder
    {
        WeakReference<ImageView> img;

    }

holder holdr = new holder();
holder.img = ...

displayImage(holder.img);

我應該只是將其作為參數傳遞,而不是將其聲明為全局參數嗎?

之所以開發ViewHolder-Pattern,主要是因為當您使用ListAdapter時,由於性能問題,ListAdapter會為每個列表項反復顯示一些具有相同結構的View元素。

您的代碼可能在滾動ListView期間頻繁調用findViewById(),這可能會降低性能。 即使適配器返回膨脹視圖以進行回收,您仍然需要查找元素並進行更新。 重復使用findViewById()的一種方法是使用“視圖持有者”設計模式。

您還應該將ViewHolder類設為靜態

您可以在Googles Dev Page上了解更多信息。

我還建議您觀看此Google IO視頻

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM