2016-01-09 2 views
1

В UWP у меня есть задача таймера, которая запускается каждые 15 минут. Фоновые задачи для триггера таймера допускаются только на 30 секунд. Но в некоторых случаях мне нужна фоновая задача для работы более 30 секунд. Кроме того, это необходимо, когда приложение находится в состоянии приостановлено. Любые предложения, как это можно достичь?[UWP] Выполнение фоновых задач более 30 секунд

+0

Система не может сделать исключение и позволить задаче запускать более 30 секунд. Я думаю, что лучше сделать его законченным в пределах предела. – kennyzx

+0

Вы не можете обойти это, так как это ограничение уровня ОС, установленное на устройствах Win. [Источник] (https://msdn.microsoft.com/en-us/library/windows/apps/mt299103.aspx#BACKGROUND_TASK_RESOURCE_CONSTRAINTS) – varevarao

ответ

3

Для долговременных фоновых задач есть три триггера: MaintenanceTrigger, ApplicationTrigger и DeviceUseTrigger. Вы можете использовать MaintenanceTrigger, если требуется каждые 15 минут. Его функция такая же, как и триггер таймера. Но

Фоновые задачи, которые используют триггер обслуживания, работают только в том случае, если система подключена к сети переменного тока.

Так как @kennyzx сказал, что лучше сделать его законченным в течение 30 секунд, поскольку фоновые задачи необходимы, чтобы быть lightweight. У этого есть много дополнительных ограничений ресурсов. Windows прекратит фоновые задачи, когда память или батарея остаются на низком уровне. Например, мы не должны обрабатывать загрузку с помощью фоновой задачи, потому что это длительная работа, мы должны использовать BackgroundTransfer в этой ситуации. если нам нужно иметь дело с некоторыми простыми операциями, такими как нажатие уведомления или обновление плитки, фоновая задача идеальна. Обеспечение минимального исполнения фона обеспечивает лучший пользовательский интерфейс с приложениями на переднем плане и временем автономной работы.