Это зависит от того, как был создан ваш провайдер, если это расширение StatefulWidget с InheritedWidget.
Если он распространяется только от InheritedWigdet, вы пропустите метод dispose, поскольку он не распространяется на StatefulBuilder, но никогда больше не будет создаваться, а метод dispose будет при закрытии приложения. Проверьте этот пример:
class Provider extends InheritedWidget {
Provider({Key key, Widget child}) : super(key: key, child: child);
final AppBloc bloc = AppBloc();
static AppBloc of(BuildContext context) =>
(context.inheritFromWidgetOfExactType(Provider) as Provider).bloc;
@override
bool updateShouldNotify(Provider oldWidget) => true;
}
Этот AppBloc является компонентом, в котором есть все блоки моего приложения.
Но если ваш провайдер расширяет StatefulWidget с InheritedWidget, вы можете передать свой блок в качестве параметра конструктора в нужный класс, и этот класс также должен быть Stateful, так что вы можете передать в initState и он будет восстановлен только при повторном доступе.