Как удалить backstack страницы для выхода из приложения - PullRequest
4 голосов
/ 26 октября 2011

У меня есть приложение, которое отображает страницу отказа от ответственности при первом запуске.Выбрав «Принять» или «Запретить», вы больше никогда не увидите страницу.

Однако, когда вы нажимаете клавишу «назад», пытаясь закрыть приложение после первого запуска, вы возвращаетесь на страницу отказа от ответственности, а затем, если вы нажмете на нее.снова, вернитесь на главную страницу и затем снова выйдите.

Это происходит только при первом запуске приложения, но я хотел бы, чтобы приложение игнорировало страницу отказа от ответственности при нажатии клавиши возврата и выходилоприложение.

Кроме принудительной ошибки необработанного исключения для закрытия приложения, есть ли другие варианты?

Заранее спасибо.

Решение: Добавьте ниже NavigationService.RemoveBackEntry(); на моей главной странице.

private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
{
    NavigationService.RemoveBackEntry();
    NavigationService.RemoveBackEntry();
}

Ответы [ 2 ]

3 голосов
/ 26 октября 2011

Я уверен, что есть более элегантный способ сделать это, но я спешил, поэтому я реализовал его следующим образом.

У меня есть статическое глобальное перечисление, в котором хранится последняя страница, на которой я был. Предполагая, что у вас есть страницы с именами pgDisclaimer и pgMain.

В событии OnNavigatedTo на странице pgDisclaimer проверьте, откуда поступил элемент управления. Если оно пришло с pgMain, просто выполните NavigationService.GoBack(), и вы выйдете из приложения, и пользователь никогда не увидит страницу pgDisclaimer (даже мерцание).

Редактировать: Нашли более элегантный способ. В Mango вы можете использовать ужасно названный метод NavigationService.RemoveBackEntry().

3 голосов
/ 26 октября 2011

Вы должны отображать Disclaimer как всплывающее окно, а не как страницу, чтобы вам не приходилось беспокоиться о проблемах навигации и обратного стека.Я видел это упомянутое в видео 9-го канала:

Windows Phone: создание приложений, которые нравятся клиентам, от начала до конца

Особая часть презентации, которая охватывает этооколо 26:20.Он обсуждает страницу входа, которая не позволяет пользователю вернуться обратно из приложения, но концепция похожа.

Кроме того, из этого сообщения в блоге MSDN :

Я забыл совет № 1 относительно экранов EULA / Login - не превращайте их в страницы,Если вместо этого вы сделаете их всплывающими элементами управления, вы можете показать или скрыть их в любое время (при первой навигации; когда пользователь нажимает на «защищенную» часть приложения; после истечения времени ожидания и т. Д.), И они не потребляютслот в стэк.Это должно охватывать большинство случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...