sync method

void sync()

同步状态

Implementation

void sync() {
  while (!isSynced()) {
    _newEventOccurred = false;
    // no need to check eldest for nullability, because isSynced does it for us.
    LifecycleState? eldestObserverState = getEldestStateObserver()?.state;
    if (_state.index < (eldestObserverState?.index ?? -1)) {
      _backwardPass(lifecycleOwner);
    }
    ObserverWithState? newestStateObserver = getNewestStateObserver();
    if (!_newEventOccurred && newestStateObserver != null && _state.index > newestStateObserver.state.index) {
      _forwardPass(lifecycleOwner);
    }
  }
  _newEventOccurred = false;
}