Вы несколько ограничены в том, когда ваши фоновые задачи запускаются на телефоне. Операционная система также будет перемещать запланированное время выполнения задач, если она может выполнять несколько задач одновременно, чтобы избежать необходимости дважды пробуждать телефон. Если вы хотите обновлять плитку каждые 5 минут, то push-уведомления - это единственный вариант. Но вам, вероятно, следует подумать, будет ли пользователь регулярно просматривать информацию, которая регулярно.
Я иду на полпути - я использую PeriodicTask
, чтобы обновить плитки оболочки, как позволяет ОС, но затем, когда приложение запускается, я вручную обновляю плитки самой последней информацией. Это позволяет пользователю «форсировать» данные тайла и дополнительно предоставляет более реалистичные данные после выхода пользователя из приложения.
Чтобы завершить 14-дневный срок действия, перезапускайте фоновое задание при каждом запуске приложения. Это будет продолжаться 14 дней. Он предназначен для предотвращения использования ценных ресурсов неиспользуемыми приложениями - если ваш пользователь запускает ваше приложение, он, вероятно, все еще хочет запустить фоновый агент. А если нет, они могут отключить его через Настройки> Приложения> Фоновые задачи (или, очевидно, удалив). Чтобы зарегистрировать свою задачу, выполните в коде инициализации что-то вроде следующего:
PeriodicTask task = ScheduledActionService.Find("MyTaskName") as PeriodicTask;
if ((task != null) && (task.IsEnabled == true)) {
ScheduledActionService.Remove("MyTaskName");
}
task = new PeriodicTask("MyTaskName") {
Description = "My Periodic Task",
};
ScheduledActionService.Add(task);
#if DEBUG
if (System.Diagnostics.Debugger.IsAttached == true) {
ScheduledActionService.LaunchForTest("MyTaskName", TimeSpan.FromSeconds(10));
}
#endif
#if DEBUG
позволяет планировать задачу сразу после выполнения для сценариев тестирования.