Как запустить фоновое задание при загрузке - приложение для 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 как часть процесса установки?