Подтвердить что ты не робот

Есть ли способ программно выйти из моего приложения? (Windows Phone 7)

Я пишу приложение Windows Phone 7. У меня есть код обработки "фатального исключения", где я точно знаю, что приложение полностью заблокировано, и нет смысла продолжать. (Я надеюсь, что я никогда сюда не приду...). Поскольку я ничего не могу сделать, кроме моего приложения, я хочу, чтобы пользователь мог закрыть приложение.

Но я заметил, что в Silverlight 4 SDK для Windows Phone нет System.Environment.Exit(). Есть ли другой способ выйти из приложения программно?

4b9b3361

Ответ 1

Приложение Cert Reqt:

5.1.2 Прекращение действия

приложение должно обрабатывать исключения поднятые .NET Framework, а не неожиданно прекратите. В течение процесс сертификации, приложение контролируется для непредвиденных прекращение. Приложение, которое неожиданно завершается сертификация. При обращении исключения, приложение должно обеспечивают удобное сообщение об ошибке. Вы можете представить сообщение, которое относящихся к контексту выражение. Приложение должно продолжать работать и оставаться отзывчивыми для ввода пользователем после исключения обработано. Приложение, которое отображает общие или бесполезные сообщения об ошибках откажется от сертификации.

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

Признавая известные решения для предоставления кнопок "Выход", в настоящее время я не вижу убедительной причины для реализации "выхода" из приложения WP7.

Платформа полностью способна управлять закрытием приложений. Чем больше приложений не обеспечит выход, тем быстрее пользователи привыкнут не думать о содержании приложения, а позволить платформе управлять им.

Пользователь будет просто перемещаться по своему устройству, используя start, back и т.д.

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

.Exit(), хотя и доступный для xna, действительно больше не требуется. Во время CTP было требование к сертификату, в котором игры должны были предоставить кнопку выхода. Это уже не так.

В игровых приложениях никогда не было необходимости реализовывать это.

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

Ответ 2

Для Windows Phone 8 просто позвоните App.Current.Terminate();

Ответ 3

А "менее уродливый" (и, видимо, единственный) способ выхода - описанный здесь. Тьфу.

Ответ 4

Перейдите в App.xaml.cs в своем браузере решений и добавьте статический метод в класс App

public static void Exit()
{
      App.Current.Terminate();
}

чтобы вы могли называть его в любом месте приложения, как показано ниже

App.Exit();

Ответ 5

Вот как я это делаю:

void Exit()
{
    while (NavigationService.BackStack.Any())
        NavigationService.RemoveBackEntry();
    base.OnBackKeyPress(new CancelEventArgs());
}

К сожалению, это не работает: (

Ответ 6

Когда вы пытаетесь программно выйти из приложения WP7, вам нужно иметь в виду требования сертификации приложений. У Питера Торра есть сообщение в блоге, которое может помочь с вашим подходом. Пол Дженкинс недавно испытал проблемы с приложением MahTweets на Marketplace, и он рассказал об этом здесь.

НТН, indyfromoz

Ответ 7

Я предполагаю, что вы можете позволить своему приложению выбросить необработанное исключение, в этот момент Windows Phone автоматически прекратит ваше приложение.

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

Ответ 8

App.Current.Terminate();

Для Windows Phone 8.1 Silverlight Apps

Ответ 9

App.Current.MainWindow.Close()