Xamarin Shell登录页驻留内存,是否应被GC回收?
关于Xamarin Shell中LoginPage的GC回收问题
我使用了David Ortinau的Shell登录示例,Shell结构如下:
<ShellItem Route="login"> <ShellContent ContentTemplate="{DataTemplate local:LoginPage}"/> </ShellItem> <TabBar Route="main"> <Tab Title="Browse" Icon="tab_feed.png"> <ShellContent ContentTemplate="{DataTemplate local:ItemsPage}" /> </Tab> <Tab Title="About" Icon="tab_about.png"> <ShellContent ContentTemplate="{DataTemplate local:AboutPage}" /> </Tab> <Tab Title="Admin" IsVisible="{Binding IsAdmin}"> <ShellContent ContentTemplate="{DataTemplate local:AdminPage}"/> </Tab> </TabBar>
应用启动时默认导航至LoginPage,登录后通过以下代码跳转到主页面(ItemsPage):
await Shell.Current.GoToAsync("//main");
我在ItemsPage中添加了强制GC的逻辑,通过按钮触发:
private void Button_Clicked(object sender, EventArgs e){ Device.BeginInvokeOnMainThread(async () =>{ GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); await Task.Delay(1000); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); }); }
但通过Xamarin Profiler观察到LoginPage仍驻留内存,请问该页面是否应该被GC回收?

内容的提问来源于stack exchange,提问作者Milan Henkrich
相关产品推荐
相关产品推荐

