观察者模式

观察者模式

public interface LowMemoryListener {
void onTrimMemory(LowMemoryManager.OnTrimMemoryLevel level);
}

public class LowMemoryManager {
private List<LowMemoryListener> mListeners;

public enum OnTrimMemoryLevel {
Critical,
Moderate,
Low;

static OnTrimMemoryLevel convert(int level) {
if (level >= Activity.TRIM_MEMORY_COMPLETE)
return Critical;
//
else if (level >= Activity.TRIM_MEMORY_MODERATE)
return Moderate;
else
return Low;
}
}

public LowMemoryManager() {
mListeners = new ArrayList<LowMemoryListener>();
}

/**
* register a listener to receive callbacks when tha application needs to trim the memory
*
* @param listener the listener going to receive the onTrimemory callback
*/
public void register(LowMemoryListener listener) {
if (!mListeners.contains(listener)) {
mListeners.add(listener);
}
}

public void notifyOnTrimMemoryListener(int level) {
for (LowMemoryListener listener : mListeners) {
listener.onTrimMemory(OnTrimMemoryLevel.convert(level));
}
}

public void unregister(LowMemoryListener listener) {
mListeners.remove(listener);
}

public void unregisterListeners() {
mListeners.clear();
mListeners = null;
}
}

posted on 2015-06-25 22:52  lh_chuang  阅读(58)  评论(0)    收藏  举报

导航