addObserver method

  1. @override
void addObserver(
  1. LifecycleObserver observer
)
override

添加观察者的时期由开发者控制,有可能不能完整触发整个生命周期,此处需要特殊处理 添加完成之后需要补充前面已经过去的生命周期(用户在哪里添加观察者无法得知)

Implementation

@override
void addObserver(LifecycleObserver observer) {
  LifecycleObserverDispatcher observerDispatcher =
      LifecycleObserverDispatcher(_owner, observer);

  _observerMap.putIfAbsent(observer, () => observerDispatcher);

  /// 延迟/补充生命周期分发,如果需要的话
  observerDispatcher.dispatchStateIfNeed(_lifecycleState);
}