Как запустить фоновое задание при загрузке - приложение для Windows Store

Мой планшет работает под управлением Windows 8.1.

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

Проблема в том, что мне нужно автоматически запускать фоновое задание в каждом загрузочном (стартовом приложении) моего устройства.

Я зарегистрировал свой bg по этому коду:

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

        // adding condition
        SystemCondition internetCondition = new SystemCondition(SystemConditionType.InternetAvailable);
        SystemCondition userPresentCondition = new SystemCondition(SystemConditionType.UserPresent); 

        builder.AddCondition(internetCondition);
        builder.AddCondition(userPresentCondition);
        BackgroundTaskRegistration taskRegistration = builder.Register();

У моего приложения есть доступ к экрану блокировки

         await BackgroundExecutionManager.RequestAccessAsync();

Как я могу это достичь? Я что-то пропустил?

Ответы

Ответ 1

Вы должны добавить условие SystemConditionType.SessionConnected, это условие происходит каждый раз, когда пользователь входит в Windows.

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

Edit:

На этом URL-странице вы можете найти официальную документацию о том, что вам нужно, и как ее использовать:

https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977056.aspx

https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.applicationmodel.background.systemtriggertype.aspx

Ответ 2

I think you should add SystemConditionType.SessionConnected condition,where this condition will check every time theuser log on to Windows

Ответ 3

Вы пытались добавить его для запуска при запуске в реестре?

У меня нет 8.1 для проверки, но если он не изменился с win7, путь должен быть HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (или HKEY_LOCAL_MACHINE), просто создайте новое строковое значение с помощью пути к вашему приложению, и оно будет запускать при запуске Windows

Ответ 4

результат этого await BackgroundExecutionManager.RequestAccessAsync(); должен быть как AllowedWithAlwaysOnRealTimeConnectivity.

Это означает: пользователь выбрал "разрешить" в диалоговом окне. Приложение добавлено на экран блокировки, может настроить фоновые задачи.

И этот BackgroundTaskRegistration taskRegistration = builder.Register(); вы звоните после await BackgroundExecutionManager.RequestAccessAsync();

Ответ 5

Вы пытались добавить приложение в Планировщик задач Windows как часть процесса установки?