如何检查屏幕上的所有内容是否都已丢弃?

时间:2019-12-30 00:11:28

标签: flutter

我是新手,但我想确保弹出屏幕时没有任何宽松的初始化。有没有一种方法可以检查变量,侦听器或流中是否存在松散的初始化,以避免内存泄漏?

2 个答案:

答案 0 :(得分:1)

您可以通过覆盖 dispose 方法

来删除所有侦听器或流。
  @override
  void dispose() {
    super.dispose();
    //listeners to remove
  }

检查颤动生命周期示例:Life cycle in flutter

答案 1 :(得分:1)

在您的BLoC中创建处理方法

  final _someSubject = BehaviorSubject<List<int>>();

  ...

  Stream<List<int>> get someStream => _someSubject.stream;

  ...

  dispose() async {
    await _someSubject.drain();
    _someSubject.close();
  }

,然后在页面上调用处置

  @override
  void dispose() {
    _someBloc.dispose();
    super.dispose();
  }

了解更多about的流失和close