return mOwner == owner;
}
/* 移除观察 */
@Override
void detachObserver() {
mOwner.getLifecycle().removeObserver(this);
}
}
- ObserverWrapper 这个类里面有个方法,后面的粘性事件会用到,先看看。
void activeStateChanged(boolean newActive) {
//组件状态如果不变返回
if (newActive == mActive) {
return;
}
// immediately set active state, so we’d never dispatch anything to inactive
// owner
mActive = newActive;
changeActiveCounter(mActive ? 1 : -1);
//如果是活动的就发送数据
if (mActive) {
dispatchingValue(this);
}
}
======================================================================
- 这个方法最核心的就是利用主线程Handler发送数据,一步步拆开分析,看看他是怎么写的。
protected void postValue(T value) {