2015-07-17 3 views
1

Я очень новичок в приложении Windows Store, и я пытаюсь использовать фоновое задание.Приложение для магазина Windows 8.1 - Фоновая задача не активирована

Я регистрирую его по событию нажатия кнопки таким образом: var builder = new BackgroundTaskBuilder();

  builder.Name = "bikePositionUpdate"; 
     builder.TaskEntryPoint = "BackgroundTaskGps.BikeGPSPositionUpdateBackgroundTask"; 
     builder.SetTrigger(new TimeTrigger(15, false)); // 

     BackgroundTaskRegistration taskRegistration = builder.Register(); 

Таким образом, предполагается, что он будет запущен в течение 15 футов.

Вот моя задача:

namespace BackgroundTaskGps 
{ 
    public sealed class BikeGPSPositionUpdateBackgroundTask : IBackgroundTask 
    { 
     public void Run(IBackgroundTaskInstance taskInstance) 
     { 
      Debug.WriteLine("run run run"); 
     } 
    } 
} 

и вот мой манифест

... 
     <Extensions> 
     <Extension Category="windows.backgroundTasks" EntryPoint="BackgroundTaskGps.BikeGPSPositionUpdateBackgroundTask"> 
      <BackgroundTasks> 
      <Task Type="timer" /> 
      </BackgroundTasks> 
     </Extension> 
     </Extensions> 
... 

Но метод запуска никогда не попал.

Пожалуйста, что может быть моей проблемой?

PS: Я тестирую свое приложение на своей локальной машине (тот же ПК разработки).

Пожалуйста, обратите внимание, что я не говорю о Windows Phone App, но ОС Windows App

ответ

2

Для Windows Phone Вы должны должны назвать это

await BackgroundExecutionManager.RequestAccessAsync(); 

Так полный код

await BackgroundExecutionManager.RequestAccessAsync(); 
builder.Name = "bikePositionUpdate"; 
     builder.TaskEntryPoint = "BackgroundTaskGps.BikeGPSPositionUpdateBackgroundTask"; 
     builder.SetTrigger(new TimeTrigger(15, false)); //For Windows Phone 8.1 minimum is 15 minutes 

     BackgroundTaskRegistration taskRegistration = builder.Register(); 
+0

WP 8.1 минимальное время составляет 30 минут. – kernanb

+0

Нет 15 минут. Я запускаю свое приложение через 15 минут. – iTR

+1

Вы никогда не знаете, когда срабатывает задача Background. Это может быть от 0 до 30 минут. Я видел, как фоновая задача заканчивается и начинается с той же минуты. Невозможно узнать, когда он начнется или когда он остановится, по крайней мере, в Windows Phone 8.1. – golldy

0

Вы используете TimeTrigger задачи в ответ на Trigger (огонь). Минимальное время между TimeTrigger Task должно составлять 30 минут. Таким образом, вы можете выполнять фоновое задание каждые 30 минут. Это похоже на Периодическую Trigger в Windows 8. Таким образом, ваш обновленный код линия будет:

builder.SetTrigger(new TimeTrigger(30, false)); 
+0

Минимальное время составляет 15 минут для приложений Store, но для телефона это 30 минут. – kernanb

+0

Учтите, что я не говорю о приложении Windows Phone, но Windows App – eeadev

Смежные вопросы