问题是在许多屏幕、登录、窗体等中有很多这样的TextEditingControllers。我是否必须对每个这样的控制器实现一个dispose方法,以防止内存泄漏?谢谢你!我尝试了一些屏幕,但我不知道是否是推荐.
enyaitl31#
您应该在使用完控制器后对其进行处置,TextEditingController在初始化后可以拥有一个侦听器,因此,如果您不处置它,即使您导航到应用中的其他屏幕,它仍将运行,这对所有其他控制器(如AnimationController、StreamController ...)都有效。性能的变化实际上无法在视觉上清楚地显示出来,但随着应用程序越来越大,它将出现一些性能问题。
TextEditingController
AnimationController
StreamController
js4nwp542#
在TextEditingController class的官方Flutter文档中,我们找到以下内容:记住在不再需要TextEditingController时将其释放。这将确保我们丢弃该对象使用的所有资源。要了解更多信息,请首先参阅Flutter官方文档。
2条答案
按热度按时间enyaitl31#
您应该在使用完控制器后对其进行处置,
TextEditingController
在初始化后可以拥有一个侦听器,因此,如果您不处置它,即使您导航到应用中的其他屏幕,它仍将运行,这对所有其他控制器(如AnimationController
、StreamController
...)都有效。性能的变化实际上无法在视觉上清楚地显示出来,但随着应用程序越来越大,它将出现一些性能问题。
js4nwp542#
在TextEditingController class的官方Flutter文档中,我们找到以下内容:
记住在不再需要TextEditingController时将其释放。这将确保我们丢弃该对象使用的所有资源。
要了解更多信息,请首先参阅Flutter官方文档。