flutter - 什么时候应该执行 dispose() 方法?
问题描述
什么时候应该执行 dispose() 方法?
例如,有两个小部件:
- 有状态的小部件 1
- 小部件 2
小部件 1 有 dispose() 方法,因为这个小部件初始化了 admob add,所以我们应该在那里实现 dispose
_bannerAd?.dispose();
现在,让我们想象一个情况。我从 W1 到 W2,然后回到 W1。不应该执行 dispose() 吗?我已经对这样的导航进行了建模,并且没有执行 dispose()。
然后我按下back
模拟器上的按钮(返回到 W2),现在 dispose 已执行(!),为什么在这种情况下执行它而不是在我们制作navigator push
小部件 2 时执行?
解决方案
这是因为,.pop()
将从堆栈中删除不会的路由,从堆栈中.push()
删除本质上意味着处置。(当你回来 W2 时会发生流行)