dispose method
清理资源 在 StatefulWidget 被从树中移除并销毁时调用的,这个方法用于清理资源。
Called when the widget is removed from the tree permanently. Used to release resources.
Implementation
@override
void dispose() {
logi("[lifecycle] dispose");
// 解绑 context provider(仅解绑自己绑定的)
_playController._unbindContext(_contextProvider);
// 移除全屏状态监听(仅在注册过时才移除)
if (_hasFullScreenListener) {
_playController.isFullScreenNotifier.removeListener(_fullScreenListener);
}
// 安全移除设置面板请求监听(即使未注册也不会报错)
_playController.settingPanelRequestNotifier
.removeListener(_handleSettingPanelRequest);
// 销毁共享动画管理器
_animationManager.dispose();
// 移除观察者
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}