1.通过setListener接口来监听
2.有的地方不太好增加setListener 或者interface来监听,那就在那个类里面 增加一个
list<Listener> 或者Hashmap<String, Listener>来 添加Listener
可以在发生变化的时候直接取调用这些Listener ,
在oncreat的时候增加addListener onDestory的时候 removeListener
1.定义监听接口
public interface AListener { void onResponse(int K); }
2.A类中
private List<Bundle> actionList= new ArrayList(); private HashMap<String, AListener> listenerHashMap = new HashMap();
desroty的时候需要
actionList.clear();
listenerHashMap.crear();
public void registerListener(String name, AListener aListener) { if (aListener!= null) { listenerHashMap .put(name, aListener); } }
public void unRegisterThemeListener(String name) { if (listenerHashMap != null && !listenerHashMap .isEmpty() && TextUtils.isEmpty(name) && listenerHashMap .containsKey(name)) { listenerHashMap .remove(name); } }
//监听回调 if (bundle.containsKey(b)) { invokeListener(k); }
public void invokeListener(int k) { if (listenerHashMap != null && !listenerHashMap .isEmpty()) { Iterator iterator = listenerHashMap .keySet().iterator(); while (iterator.hasNext()) { String key = (String) iterator.next(); AListener aListener = listenerHashMap .get(key); aListener .onResponse(k); } } }
3.使用增加获取信息 监听的地方
B类中
oncreat中
A.instance().registerThemeListener(this.getClass().getSimpleName());
onDestory中
A.instance().unRegisterThemeListener(this.getClass().getSimpleName());