uwpUWP background tasks


Remarks

  • For registering a background task that runs in a seperate process, you have to go to the "Declarations" Tab in the Package.appxmanifest and add a new "Background Task" and set the entry point.
  • Registering a single-process background task can be done by means of BackgroundTaskBuilder, but the application will throw an exception if you register a task twice, so you must check if you have already registered a task.
  • The app must gain authority to register a new task, this can be done by calling BackgroundExecutionManager.RequestAccessAsync(), but make sure that you really have the permission. The call returns the type of access (BackgroundAccessStatus enum) which will indicate whether you have access or not.
  • Tasks registered are kept until the package is uninstalled, but it won't hurt to check the tasks you need on every launch, bug happens!
  • When the application is updated, permission to register a new task is revoked. To keep your app running after an update, especially if you have added a new task register, you have to remove and request the access over, by means of BackgroundAccessManager. One method to know if your app is updated, is to register another task with a SystemTrigger, type of SystemTriggerType.ServicingComplete.