Можно ли создавать сервисы UWP, которые остаются активными независимо от состояния батареи? - PullRequest
2 голосов
/ 13 мая 2019

Хотя управление временем жизни приложений UWP очень хорошо объясняется жизненным циклом и т. Д., Я не могу найти достоверную информацию о UWP services. Есть очень тонкая статья о услугах UWP . Некоторая другая информация здесь .

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

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

Единственным вариантом будет windows service, но я оцениваю, возможно ли в настоящее время порождать службу uwp, у которой нет активности переднего плана и использует механизм ОС, чтобы гарантировать, что фоновая служба работает всегда.

Есть вещи, указывающие на то, что это невозможно, как

Квоты процессора: фоновые задачи ограничены количеством настенных часов время использования они получают в зависимости от типа триггера. Большинство триггеров ограничены до 30 секунд использования настенных часов, в то время как некоторые имеют возможность бегать до 10 минут для выполнения интенсивных заданий . Фон задачи должны быть легкими, чтобы продлить срок службы батареи и обеспечить лучшее пользовательский опыт для приложений переднего плана. См. Поддержка вашего приложения с фоновые задачи для ограничений ресурса, примененных к фону задачи.

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

(Я знаю, что для UWP определенное поведение изменилось и может измениться в будущем.)

1 Ответ

1 голос
/ 14 мая 2019

Начиная с Windows Creators Update (версия 1703), фоновые задачи могут выполняться бесконечно долго, используя возможность extendedBackgroundTaskTime. Пожалуйста, обратитесь к документам для получения дополнительной информации.

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

...