GroupChannelCollection에 새로운 handler등록에 관한 건

[Problem/Question]
GroupChannelCollection에 새로운 handler등록

안녕하세요,
일단 코드 상황부터 말씀드릴게요,

 void _initialize() async {
  if (Provider.of<ChannelCollectionProvider>(context, listen: false).isFirst) {
            debugPrint("initialize Collection");
            await Provider.of<ChannelCollectionProvider>(context, listen: false).initializeNormalCollection(MyGroupChannelCollectionHandler(this));
          } else {
            // TODO: 여기에서 현재 stage된 GroupChannelListPageState 인스턴스를 받은 핸들러 새롭게 등록
          }
}

initializeNormalCollection (Provider)

class CalringChannelCollectionProvider with ChangeNotifier {
  bool _isFirst = true;
  bool get isFirst => _isFirst;

  late GroupChannelCollection _collection;
  GroupChannelCollection get collection => _collection;

  Future<void> initializeNormalCollection(MyGroupChannelCollectionHandler handler) async {
    _collection = GroupChannelCollection(
      query: GroupChannelListQuery()
        ..includeEmpty = true
        ..customTypeStartsWithFilter = "calring"
        ..limit = 100
        ..hiddenChannelFilter = HiddenChannelFilter.unhidden
        ..order = GroupChannelListQueryOrder.channelNameAlphabetical,
      handler: handler,
    )..loadMore();

    _isFirst = false;
    notifyListeners();
  }
}

핸들러

class MyGroupChannelCollectionHandler extends GroupChannelCollectionHandler {
  final GroupChannelListPageState state;

  MyGroupChannelCollectionHandler(this.state);
  @override
  void onChannelsAdded(GroupChannelContext context, List<GroupChannel> channels) async {
    if (!state.isFirstVisit) {
      state.setState(() {});
      ;
    }
  }

  @override
  void onChannelsUpdated(GroupChannelContext context, List<GroupChannel> channels) async {
    print(state.channelList.length);
    // state._refresh();
    state.setState(() {});
    if (!state.isFirstVisit) {}
  }

  @override
  void onChannelsDeleted(GroupChannelContext context, List<String> deletedChannelUrls) {
    if (!state.isFirstVisit) {
      state.setState(() {});
      ;
    }
  }
}

이렇게 되어있습니다.
처음에 initializeNormalCollection(MyGroupChannelCollectionHandler(this)) 할때 this로 현재 스테이지 된 인스턴스를 핸들러에 보내줬는데요,
해당 페이지를 나갔다가 다시 들어가면 기존 this로 받았던 state를 계속 가지고 있어서 새롭게 스테이지된 인스턴스에서는 setState가 되지 않는 상황입니다.

따라서 여쭤보고 싶은건,
initializeNormalCollection에서 생성된 collection에 대해서 해당 페이지 방문마다 handler를 따로 등록하고 싶습니다. 물론 collection 자체를 요청하면 됩니다만, 해당 페이지 들어갈때마다 로딩시간이 조금 걸려서 그것을 피하기 위함입니다.

" GroupChannelCollection의 핸들러만 따로 교체해 줄 수 있을까요?

가 질문의 요지 입니다.

답변 기다리겠습니다.
감사합니다.