2010-12-02 4 views

ответ

28

Вы всегда можете позвонить выход, делая это на своей странице посадки этот код при щелчке приложения задней кнопки:

if (NavigationService.CanGoBack) 
{ 
    while (NavigationService.RemoveBackEntry() != null) 
    { 
     NavigationService.RemoveBackEntry(); 
    } 
} 

Это удалит обратно записи из стека, и вы нажмете кнопку «Назад», он закроет приложение без каких-либо исключений.

7

На самом деле нет для этого. Существует nice explanation/overview of your options here.

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

Here is a way to make it look nicer,, но в конце дня он по-прежнему выбрасывает исключение. Я не знаю, смотрит ли процесс сертификации приложения, выбрасываете ли вы необработанные исключения, но я думаю, это может быть проблемой.

+0

Благодарим вас за ссылки! Это помогло! В конце концов я решил удалить кнопку «Выход». : D – Vercas 2010-12-02 19:01:12

+0

Thats совершенно неправильно. Начиная с первого выпуска, вы должны покинуть приложение, используя команду `NavigationSerice.Back()`. Если вы не в корне, вы можете использовать его, пока приложение закрыто. Но другие вещи взломаны и не рекомендуются, извините. – goldengel 2011-08-23 12:41:48

+0

Я думаю, что microsoft проверяет необработанные исключения и отказывается от приложения, которое имеет его. – SKandeel 2011-11-15 02:28:12

8

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

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

Пользователь будет просто перейти их устройства с помощью запуска, спина и т.д.

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

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

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

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

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

+2

Обычно рекомендуется попробовать и вписаться в платформу, чем сражаться с ней. Пользователи хорошо относятся к последовательности. – 2010-12-03 22:52:18

5

Простейшее, что нужно сделать, - это симулировать возвращение с вашей корневой/домашней страницы. Я предполагаю, что это именно то, что делают приложения (те, у кого есть кнопка выхода), как Fruit Ninja.

if (NavigationService.CanGoBack) 
{ 
    NavigationService.GoBack(); 
} 

Btw, над фрагментом работы для приложения silverlight.

+0

это единственный реальный ответ. Я не мог поверить в другой ответ с 4 upvotes, чтобы исключить исключения или сломать приложение. – goldengel 2011-08-23 12:34:37

0
private void exitBUtton_ONclick(object sender, RoutedEventArgs e) 
    { 
     throw new Exception("ExitAppException"); 
    } 
4

Другим способом выхода из приложения является вызов функции выхода класса Game инфраструктуры Microsoft Xna.

Например:

Microsoft.Xna.Framework.Game game = new Microsoft.Xna.Framework.Game(); 
game.Exit();