mod: close listener on dispose

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-12-25 14:40:47 +08:00
parent 169ae7d562
commit 6acba93c2c
13 changed files with 194 additions and 129 deletions

View File

@@ -33,6 +33,7 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
late DynamicsTabController _dynamicsTabController;
late bool dynamicsWaterfallFlow;
late final DynamicsController dynamicsController;
StreamSubscription? _listener;
@override
bool get wantKeepAlive => true;
@@ -61,7 +62,7 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
searchBarStream.add(false);
}
});
dynamicsController.mid.listen((mid) {
_listener = dynamicsController.mid.listen((mid) {
// debugPrint('midListen: $mid');
_dynamicsTabController.mid = mid;
_dynamicsTabController.scrollController.jumpTo(0);
@@ -73,6 +74,7 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
@override
void dispose() {
_listener?.cancel();
_dynamicsTabController.scrollController.removeListener(() {});
dynamicsController.mid.close();
super.dispose();

View File

@@ -40,6 +40,7 @@ class _DynamicsPageState extends State<DynamicsPage>
late Future _futureBuilderFutureUp;
Box userInfoCache = GStorage.userInfo;
late UpPanelPosition upPanelPosition;
StreamSubscription? _listener;
@override
bool get wantKeepAlive => true;
@@ -91,7 +92,7 @@ class _DynamicsPageState extends State<DynamicsPage>
// .onSelectType(_dynamicsController.tabController.index);
// }
// });
_dynamicsController.userLogin.listen((status) {
_listener = _dynamicsController.userLogin.listen((status) {
if (mounted) {
setState(() {
_futureBuilderFutureUp = _dynamicsController.queryFollowUp();
@@ -118,6 +119,7 @@ class _DynamicsPageState extends State<DynamicsPage>
@override
void dispose() {
_listener?.cancel();
_dynamicsController.tabController.removeListener(() {});
_dynamicsController.scrollController.removeListener(() {});
super.dispose();