我已经阅读了很多与此问题相关的不同帖子。但无法解决我的问题。
我似乎应该处理的页面没有释放他们的内存,并且所有用户控件和其中的UI项目都没有被删除。 我尝试取消订阅所有事件处理程序并使用弱引用。但似乎没有任何效果。
我正在使用caliburn微MVVM框架。
工作流程:
1登录
2个新预订屏幕
带有8个轴的PivotView
在第8个支点,我打电话给服务
3确认屏幕
有4个平底锅的全景
从第一个用户可以选择修改预订。
4修改屏幕(新预订)
这次第8个支点不同,其中包含提交按钮。
提交转到确认屏幕后。
5确认屏幕
在按下后,我拨打GoHome
6个新预订屏幕
当我提交应用程序崩溃时,我在前7个枢轴和8日提供信息。
当我尝试对这个应用程序进行分析时,我发现很多UI元素如Grid with destry time infinity都没有被删除。
回家功能
public void GoHome()
{
_dataProvider.PauseService(cancelTokenSource);
if (_applicationState.OldReservation != null)
{
_applicationState.OldReservation = null;
}
if (_applicationState.AppToken != null && _applicationState.AppToken.TokenState == Constants.TOKENSTATUS_ANONYMOUS)
{
_applicationState.AppToken.Profile = null;
_applicationState.CurrentReservation = new Reservation();
}
else
{
}
GC.Collect();
while (_navigationService.BackStack != null
&& _navigationService.BackStack.Count() > 0
&& _navigationService.BackStack.Any((entry) => entry.Source.ToString().EndsWith("/MainPageView.xaml"))
&& !_navigationService.BackStack.First().Source.ToString().EndsWith("/MainPageView.xaml"))
{
_navigationService.RemoveBackEntry();
}
if (_navigationService.BackStack.First().Source.ToString().EndsWith("/MainPageView.xaml"))
{
_navigationService.RemoveBackEntry();
}
_navigationService.Navigate(new Uri("/Views/MainPage/MainPageView.xaml", UriKind.Relative));
}