无需任何setState调用即可重建生成方法的内容

时间:2018-07-21 23:22:03

标签: caching garbage-collection dart flutter

我的应用程序有很多API调用和图像下载,这就是为什么我使用Cache Manager package

我注意到大量内容被重新下载,我的应用程序发送API请求时除了滚动屏幕外没有做任何其他事情。

我开始检查,build()方法可以随时重建,但是与任何setState()调用无关!

是否有可能与垃圾收集器或缓存问题有关? 我得到了很多调试打印信息,例如Background concurrent copying GC freed 368(32KB) AllocSpace objects, 18(1632KB) LOS objects, 56% free, 1202KB/2MB, paused 25.610ms total 107.349ms

如果不是,会导致什么?

1 个答案:

答案 0 :(得分:0)

好吧,我删除了问题,但考虑了一下,并删除了该问题,以便在其他人遇到这种行为的情况下回答该问题:

这很奇怪,但是问题似乎出在我的小部件是RefreshIndicator小部件的子级。

我确定我什至没有滚动到确实应激活我的刷新方法的位置,但是由于某种原因,将任何方向滚动到太远(甚至在我的刷新指示器为常规垂直指示器的情况下也水平滚动)都将其激活。 / p>

很抱歉在提出问题时未提供任何示例,该应用程序太复杂了,我什至不知道什么是相关的,什么不相关...

编辑: 现在,这确实是一个谜,我在print('Refresh')方法中添加了onRefresh行,即使重新构建了小部件,它也从未打印过!

如果有人有某种解释,我真的很想听听。