繁体   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