LIBBaseEntity.java
943 字节
package com.xdy.commonlibrary.adapter;
import java.lang.ref.SoftReference;
/**
* 通过实体类,缓存ViewHolder的引用
*
* @Description <LIBBaseEntity>
* @author lixi
* @date 2017年7月17日
*/public abstract class LIBBaseEntity {
private SoftReference<LIBViewHolder> observer;
public final void registerObserver(LIBViewHolder observer) {
unregisterAll();
this.observer = new SoftReference<LIBViewHolder>(observer);
}
public final LIBViewHolder getObserver() {
if (null == observer) {
return null;
}
return observer.get();
}
/**
* @return False ,entity is not visible
*/
public final boolean refresh() {
LIBViewHolder holder = getObserver();
if (null != holder && equals(holder.getTag())) {
return holder.refresh();
} else {
unregisterAll();
return false;
}
}
private final void unregisterAll() {
if (null != observer) {
observer.clear();
}
this.observer = null;
}
}