dispose method

  1. @override
void dispose()
override

关闭页面后,请求取消。

Implementation

@override
void dispose() {
  if (!autoDispose()) {
    super.dispose();
    return;
  }
  for (var live in _lives) {
    live.destroy();
  }
  for (var event in eventMap.entries) {
    event.value.unregister(event.key.key, event.key.value);
  }

  for (var ld in _liveDataList) {
    ld.destroy();
  }

  for (var vm in _viewModels) {
    vm.destroy();
    if (vm is AnHttpMixin) {
      (vm as AnHttpMixin).disposeRequestToken();
    }

    if (vm is EventBusMixin) {
      (vm as EventBusMixin).unregisterEvents();
    }

    if (vm is OverlayActionMixin) {
      var oa = vm as OverlayActionMixin;
      oa.disposeOverlayAction();
      oa.setOverlayAction(null);
    }
  }
  _viewModels.clear();
  _liveDataList.clear();
  super.dispose();
}