API перезапуска
API перезапуска позволяет любому приложению, включая упакованные или неупакованные приложения Win32, завершать работу и перезапускаться по команде, включая возможность предоставления произвольной строки командной строки для перезапущенного экземпляра.
Определение
public static AppRestartFailureReason Restart(String arguments)
Параметры
arguments
: строка
Аргументы для передачи в перезапущенный экземпляр.
Возвращаемое значение
API перезапуска возвращает .AppRestartFailureReason
Предварительные требования
Чтобы использовать API жизненного цикла приложения в Windows App SDK:
- Скачайте и установите последний выпуск Windows App SDK. Дополнительные сведения см. в статье Установка инструментов для Windows App SDK.
- Выполните инструкции по созданию простого проекта WinUI 3 или применению пакета SDK для приложений Windows в существующем проекте.
Что такое этот метод перезапуска?
Для приложений Win32 в качестве возможных механизмов перезапуска существуют следующие:
- Api Win32 RegisterApplicationRestart позволяет зарегистрировать приложение для перезапуска после завершения работы и предоставить произвольную строку командной строки для перезапущенного экземпляра. К причинам прекращения работы относятся сбой или зависание приложения, обновление приложения или обновление системы.
Однако для следующего сценария существует пробел:
- Приложения Win32 могут регистрироваться в ОС для перезапуска в определенных состояниях приложения или ОС, но не могут инициировать перезапуск из работоспособного состояния.
Этот API перезапуска позволяет приложениям Win32 завершать и перезапускать по команде, а также соответствует существующему coreApplication.RequestRestartAsync.
Перезапуск с аргументами командной строки
Просто вызовите метод Restart и укажите произвольную строку командной строки для перезапуска экземпляра. Перезапуск завершается синхронно, и никаких дополнительных действий или обработки не требуется. Если перезагрузка по какой-либо причине завершается сбоем, метод Restart возвращает причину сбоя.
Примеры
private void restartAfterUpdate()
{
AppRestartFailureReason restartError = AppInstance.Restart(restartArgsInput);
switch (restartError)
{
case AppRestartFailureReason.RestartPending:
SendToast("Another restart is currently pending.");
break;
case AppRestartFailureReason.InvalidUser:
SendToast("Current user is not signed in or not a valid user.");
break;
case AppRestartFailureReason.Other:
SendToast("Failure restarting.");
break;
}
}
Чтобы просмотреть примеры перезапуска, посетите репозиторий WindowsAppSDK-Samples.
Windows developer
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по