Я переопределил метод Page.OnNavigatedFrom()
в приложении UWP. Метод вызывается, когда я перехожу на другую страницу. Согласно документации , Page.OnNavigatedFrom()
составляет:
Вызывается сразу после того, как страница выгружена и больше не является
текущий источник родительского кадра.
Однако, когда я закрываю приложение, OnNavigatedFrom()
страницы не вызывается. Не следует ли завершить приложение, выгружая страницу?
// Not called when app is terminated
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
}
Обновление
Я ценю комментарии. Чтобы быть более понятным, я должен был сказать, что я закрывал приложение, а не закрывал приложение. (Закрытие приложения сначала приостанавливается, а затем завершает приложение.) Я обнаружил, что при вызове Frame.GetNavigationState()
в OnSuspending()
вызывается OnNavigatedFrom()
, даже когда пользователь закрывает приложение:
private void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: Save application state and stop any background activity
// Triggers currently loaded Page's OnNavigatedFrom
Frame frame = Window.Current.Content as Frame;
ApplicationData.Current.LocalSettings.Values["NavigationState"] =
frame.GetNavigationState();
deferral.Complete();
}