2

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

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

1 ответ1

1

Приложения Магазина имеют более сложный жизненный цикл, чем приложения Win32:

До Windows 8 приложения имели простой жизненный цикл. Приложения Win32 и .NET либо работают, либо не работают. Когда пользователь сворачивает их или отключается от них, они продолжают работать. Это было хорошо, пока портативные устройства и управление питанием не становились все более важными.

Windows 8 представила новую модель приложений с приложениями UWP. На высоком уровне было добавлено новое приостановленное состояние. Приложение UWP приостанавливается вскоре после того, как пользователь сворачивает его или переключается на другое приложение. Это означает, что потоки приложения останавливаются, а приложение остается в памяти, если операционной системе не требуется вернуть ресурсы. Когда пользователь снова переключается на приложение, оно может быть быстро восстановлено в рабочем состоянии. По умолчанию приложения, которые не находятся на переднем плане, приостанавливаются, что приводит к экономии энергии и большему количеству ресурсов, доступных для приложения, находящегося на переднем плане.

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

Чтобы продолжить работу, приложения должны поддерживать фоновые задачи:

Существуют различные способы для приложений, которые должны продолжать работать, когда они находятся в фоновом режиме, такие как фоновые задачи, расширенное выполнение и выполнение, спонсируемое действием (например, возможность BackgroundMediaEnabled, которая позволяет приложению продолжать воспроизводить мультимедиа в фоновом режиме) , Кроме того, операции фоновой передачи могут продолжаться, даже если ваше приложение приостановлено или даже прекращено.

Поэтому используемые вами приложения не поддерживают это и приостанавливаются, как и ожидалось.

В Windows SDK есть инструмент для отключения жизненного цикла приложения

"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\plmdebug.exe" /enableDebug <PackageFullName> 

Сделайте это для приложений, которые вы хотите продолжить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .