Программный перезапуск приложений Магазина Windows

Я знаю, что можно использовать MSApp.terminateApp, чтобы убить приложение. Как насчет перезапуска приложения? Есть ли какая-нибудь команда для перезагрузки?


person louis.luo    schedule 14.08.2012    source источник
comment
Почему вы хотите это сделать?   -  person JP Alioto    schedule 15.08.2012
comment
@JPAlioto Иногда, когда мое приложение переходит в неисправимое состояние, я хотел бы предложить пользователю перезапустить приложение, а не застревать там.   -  person louis.luo    schedule 15.08.2012
comment
или, может быть, чтобы активировать вновь выбранный язык.   -  person CSharper    schedule 19.06.2014


Ответы (1)


Перезапуск не вписывается в концепцию приложений Windows 8 (ранее Metro). Если вы попали в неисправимое состояние, то правильнее всего позволить ему сломаться и позволить Windows обработать его оттуда.

Из здесь:

Сбой приложения

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

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

Когда пользователь активирует приложение после его сбоя, его обработчик событий активации получает значение ApplicationExecutionState, равное NotRunning, и должен просто отображать исходный пользовательский интерфейс и данные.

person N_A    schedule 15.08.2012
comment
В моем случае я пытаюсь перезапустить приложение, когда пользователь выходит из системы. Кажется, самый простой способ очистить данные и позволить пользователю снова войти в систему, как он всегда должен делать, если пользовательские данные недоступны. - person pipedreambomb; 29.05.2013
comment
@pipedreammbomb Если бы я сделал что-то в этом роде, я бы, вероятно, поместил все свои данные для входа и т. д. в объект, а затем просто заменил бы этот объект при выходе из системы. - person N_A; 29.05.2013
comment
Безусловно, он уже был сохранен в roamingSettings, поэтому я позвонил, чтобы очистить его. Жаль, что я не могу просто перезапустить приложение с нуля после того, как я это сделал, поэтому весь пользовательский интерфейс обновляется вместо того, чтобы вручную разбирать его и приводить его в такой вид, как при запуске. - person pipedreambomb; 31.05.2013