接下来讲的内容都是基于熟练使用Rxjava的基础上的,如果对于Rxjava不熟悉的话,请参考泡在网上的日子上的Rxjava专题
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0430/2815.html
封装RxBus代替EventBus:
public class RxBus {
private static RxBus instance;
public static synchronized RxBus getInstance() {
if (null == instance) {
instance = new RxBus();
}
return instance;
}
private RxBus() {
}
@SuppressWarnings("rawtypes")
private ConcurrentHashMap<Object, List<Subject>> subjectMapper = new ConcurrentHashMap<Object, List<Subject>>();
/**
* 注册事件源
*
* @param tag
* @return
*/
@SuppressWarnings({"rawtypes"})
public <T> Observable<T> register(@NonNull Object tag) {
List<Subject> subjectList = subjectMapper.get(tag);
if (null == subjectList) {
subjectList = new ArrayList<Subject>();
subjectMapper.put(tag, subjectList);
}
Subject<T, T> subj