MST

星途 面试题库

面试题:Flutter中常见导致内存泄漏的场景有哪些

请列举至少3种Flutter中可能导致内存泄漏的常见场景,并简要说明原因。
16.6万 热度难度
前端开发Flutter

知识考点

AI 面试

面试题答案

一键面试
  • 未取消的Stream订阅
    • 原因:当一个Widget订阅了一个Stream,但在Widget销毁时没有取消订阅,Stream仍会持续发送数据,导致Widget及其相关资源无法被释放,因为Stream持有对Widget的引用,从而造成内存泄漏。
  • 静态成员持有Widget引用
    • 原因:如果在静态变量或单例中持有Widget的引用,由于静态成员的生命周期与应用程序相同,Widget在被销毁时,因为静态成员的引用而无法被垃圾回收,进而引发内存泄漏。
  • 动画未停止
    • 原因:启动了动画(如AnimationController),但在Widget销毁时未停止动画。动画会持续运行并持有对Widget的引用,使得Widget不能被正常回收,导致内存泄漏。