【发布时间】:2017-03-18 12:04:16
【问题描述】:
是否收集了 Xamarin Forms 导航堆栈垃圾?当我单击按钮并使用 Navigation.PushAsync() 打开页面时,它会将其他页面保留在导航堆栈中还是释放内存?
【问题讨论】:
标签: c# garbage-collection xamarin.forms
是否收集了 Xamarin Forms 导航堆栈垃圾?当我单击按钮并使用 Navigation.PushAsync() 打开页面时,它会将其他页面保留在导航堆栈中还是释放内存?
【问题讨论】:
标签: c# garbage-collection xamarin.forms
Navigation stack 是一个 Stack 接口,你通常可以把它想象成抽屉里的一堆银器。当您将叉子添加到抽屉时,您将它放在其他叉子的顶部,并且当您移除叉子时,您总是移除最上面的叉子。堆栈是先进后出的数据类型。但是,当您在顶部添加一个叉子时,所有其他叉子仍然在它下方。
这与导航堆栈相同。当您使用PushAsync(newPage) 添加页面时,newPage 位于导航堆栈的顶部,但它之前的所有页面仍位于其下方。这样,当您拨打PopAsync() 时,您将返回上一页,而不必完全重新制作它。
【讨论】: