我正在尝试显示一个对话框,该对话框可以在我的应用程序中的任何地方重复使用。该对话框需要BuildContext,因此我创建了一个类并添加了一个静态方法来显示对话框,并BuildContext在静态方法中传递 a 作为参数。这会导致内存泄漏吗?就原生 Android 而言,我知道如果静态方法返回 UI,则在静态方法内传递活动上下文会导致方法泄漏。
可能是的。这将阻止垃圾收集器从此对象释放内存。根据此 dart-lang 问题中的答案,只要存在可访问的引用,该对象就会保留在内存中。
所以,一般来说,不建议将BuildContext对象存储在静态字段中。
但是,如果您得到一个BuildContext不会在应用程序的生命周期生成内重新创建的顶部小部件 - 应该没问题。如果可能被处置 - 覆盖该dispose()方法并通过分配值来清除引用null。
根据长期存在的异步任务 - 我不建议将它们传递给 a,BuildContext因为只要任务执行,它肯定会导致内存泄漏。
| 归档时间: |
|
| 查看次数: |
5745 次 |
| 最近记录: |