观察者模式
观察者模式
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;
}
}
浙公网安备 33010602011771号