addObserver method
添加观察者的时期由开发者控制,有可能不能完整触发整个生命周期,此处需要特殊处理 添加完成之后需要补充前面已经过去的生命周期(用户在哪里添加观察者无法得知)
Implementation
@override
void addObserver(LifecycleObserver observer) {
LifecycleObserverDispatcher observerDispatcher =
LifecycleObserverDispatcher(_owner, observer);
_observerMap.putIfAbsent(observer, () => observerDispatcher);
/// 延迟/补充生命周期分发,如果需要的话
observerDispatcher.dispatchStateIfNeed(_lifecycleState);
}