Как справиться с первым запуском и брызгами в WP7 - PullRequest
1 голос
/ 07 августа 2011

Я потратил немного времени на поиски переполнения стека, чтобы выяснить, как детерминистически закрыть приложение на основе действия. Большинство, если не все ответы говорят, что вы не можете или не должны этого делать. Если это так, я хотел бы сформулировать свой вопрос по-другому и посмотреть, как люди решают две проблемы, с которыми у меня возникают проблемы.

Просто, чтобы вы, ребята, знали, что я использую Caliburn.Micro для этого проекта.

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

Splash -> Welcome -> CreateAccount -> MainHub (все остальные ветви функций здесь)

Splash -> MainHub (все остальные функциональные ветки отсюда)

Основываясь на этом потоке, отзывы моих лучших (бета) тестеров таковы, что они ожидают выхода из приложения при нажатии кнопки «Назад» на концентраторе, который они считают точкой входа. В настоящее время по навигации они полностью возвращаются к всплеску.

Я вижу, что другие приложения имеют эту функцию, но без принудительного закрытия приложения (которое я прочитал - нет, нет), как они достигают этой желаемой функциональности.

ПРИМЕЧАНИЕ. Я не хочу вставлять кнопку выхода, так как считаю, что это идет вразрез с естественным потоком приложения WP7.

Ответы [ 2 ]

1 голос
/ 07 августа 2011

Прежде всего, вы не можете добавить кнопку выхода. Единственный способ выхода из приложения - это его сбой, который не будет одобрен для сертификации на рынке.

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

Для этого используйте NavigationService.RemoveBackEntry .

Вы можете получить доступ к NavigationService из любого места, используя этот фрагмент:

(App.Current.RootVisual as PhoneApplicationFrame).RemoveBackEntry()
1 голос
/ 07 августа 2011

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

Источник: http://blogs.msdn.com/b/ptorr/archive/2010/08/01/exiting-a-windows-phone-application.aspx

...