后退按钮是否与 dispose() 方法相同?
Is the back button the same as dispose() method?
颤动
后退按钮是否与dispose()
方法相同?
我知道没有太多相似之处,但我的意思是,当您点击后退按钮时,是否会从我们离开的页面树中释放内存?
不,后退按钮不会取代处置功能,如果您在有状态小部件屏幕中有控制器,当状态对象被删除时,您将需要处置它以避免内存泄漏。
考虑到您正在谈论框架的 BackButton
小部件,那么最终,为什么?
因为框架的后退按钮只是使用 IconButton
创建您自己的小部件的抽象,按下时调用 Navigator.maybePop(context);
。
回答您的问题:是的,如果在按下 BackButton
时页面关闭,那么它会释放资源(如果您的小部件是有状态小部件,它将调用 dispose()
)。
请记住,您仍然需要重写 dispose() 方法并释放任何资源(如果有),以便在按下后退按钮时释放这些资源。
总结::: BackButton
只需调用 Navigator.maybePop(context);
并且它只会在您覆盖它并调用 some_class.dispose()
.
时释放您的 StatefulWidget 的资源
颤动
后退按钮是否与dispose()
方法相同?
我知道没有太多相似之处,但我的意思是,当您点击后退按钮时,是否会从我们离开的页面树中释放内存?
不,后退按钮不会取代处置功能,如果您在有状态小部件屏幕中有控制器,当状态对象被删除时,您将需要处置它以避免内存泄漏。
考虑到您正在谈论框架的 BackButton
小部件,那么最终,为什么?
因为框架的后退按钮只是使用 IconButton
创建您自己的小部件的抽象,按下时调用 Navigator.maybePop(context);
。
回答您的问题:是的,如果在按下 BackButton
时页面关闭,那么它会释放资源(如果您的小部件是有状态小部件,它将调用 dispose()
)。
请记住,您仍然需要重写 dispose() 方法并释放任何资源(如果有),以便在按下后退按钮时释放这些资源。
总结::: BackButton
只需调用 Navigator.maybePop(context);
并且它只会在您覆盖它并调用 some_class.dispose()
.