如何从内存中删除以前的页面?

时间:2015-08-31 15:29:48

标签: xamarin xamarin.forms

我在我的Forms应用程序中使用了Master / Detail的实现。问题是,即使在我更改页面后,前一个页面仍在运行,我甚至不得不做一些非活动/ isActive代码,以便停止这些页面的代码执行。

这就是我改变页面的方式:

        public void GoTo(Page page)
        {
            Detail = new NavigationPage(page);
            IsPresented = false;
            UserDialogs.Instance.HideLoading();
        }

然后我这样做:

Application.Current.HomePage.GoTo(new ServiceSelectionPage());

但是上一页继续运行。我究竟做错了什么?或者如何从内存中删除这些页面?我尝试设置Detail = null无效。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是设计的。你可以:

  • 将其实例设置为null,然后等待垃圾回收。您可以使用GC.Collect();强制它 - 但不能保证。
  • 重用页面实例(使用相同的Page实例,仅更改当前的BindingContext)。你可以使用自定义页面工厂。