В моем приложении есть один класс, который добавляет значения в поток BehaviorSubject
:
class MyClassA{
BehaviorSubject<int> _signalSubject = BehaviorSubject();
Stream<int> get signalStream => _signalSubject.stream;
//at some other point in the same class i have:
_signalSubject.add(someIntValue)
}
Теперь, в другом классе в моем приложении:
class MyClassWidget extends StatefulWidget {
MyClassWidget();
@override
_MyClassWidgetState createState() => _MyClassWidgetState();
}
class _MyClassWidgetState extends State<MyClassWidget>{
MyClassA classA = MyClassA();
... etc
@override
void initState() {
super.initState();
classA.signalStream
.listen((signal) => print("Signal received $signal"));
});
}
}
Можно ли прекратить прослушивание signalStream
при определенных условиях и возобновить прослушивание при других условиях?
Поток имеет свойство .takeUntil
, которое, насколько я понимаю, может быть использовано для остановки прослушивание, но как возобновить прослушивание снова?