private async void Button_Click(object sender, RoutedEventArgs e) { foreach (var _task in BackgroundTaskRegistration.AllTasks) { if (_task.Value.Name == "My demo task") { _task.Value.Unregister(true); } } // asking to register on lock screen BackgroundAccessStatus accessresult = await BackgroundExecutionManager.RequestAccessAsync(); BGTaskMD.ExampleBackgroundTask b = new BGTaskMD.ExampleBackgroundTask(); b.ShowToast(accessresult.ToString()); if ((accessresult == BackgroundAccessStatus.Denied)||(accessresult == BackgroundAccessStatus.Unspecified)) { return; } // just to show result of lock screen registration BGTaskMD.RegisterTask r = new BGTaskMD.RegisterTask(); r.RegisterIt(); // unregister ServicingComplete task if it was already registered foreach (var _task in BackgroundTaskRegistration.AllTasks) { if (_task.Value.Name == "My demo task updated") { _task.Value.Unregister(true); } } // register ServicingComplete task SystemTrigger taskTrigger = new SystemTrigger(SystemTriggerType.ServicingComplete,false); var bgTaskBuilder = new BackgroundTaskBuilder(); bgTaskBuilder.Name = "My demo task updated"; bgTaskBuilder.TaskEntryPoint = "BGTaskMD.AppUpdateServicingCompleteTask"; bgTaskBuilder.SetTrigger(taskTrigger); BackgroundTaskRegistration task = bgTaskBuilder.Register(); }
void task_Completed(BackgroundTaskRegistration sender, BackgroundTaskCompletedEventArgs args) { if (sender.Name == "My demo task") { try { args.CheckResult(); BGTaskMD.ExampleBackgroundTask b = new BGTaskMD.ExampleBackgroundTask(); b.ShowToast(sender.Name+" is completed"); } catch{} } }