Download presentation
Presentation is loading. Please wait.
Published byBetty Anderson Modified over 6 years ago
1
Windows Developer Day Fall Creators Update Chris Cortes
October 10, 2017 Chris Cortes UWP Program Manager
2
Multitasking in the Fall Creators Update
Single Process Model and Persistent Events Chris Cortes UWP Program Manager
3
5/26/2018 6:51 AM Multitasking in UWP Single Process and Multiple Process Models Multitasking for your Scenario Persistent Events © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
4
Single Process Model Activate in Background New Callbacks Suspended
5/26/2018 6:51 AM Single Process Model Activate in Background Launch/Activated Background Activated New Callbacks Leaving Background Entered Background Suspended Terminated Foreground Resume Background Resume © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
5
Background Media Playback
Add Manifest Entry Use any Windows Audio API Stream to hold Network <Capabilities> <uap3:Capability Name="backgroundMediaPlayback“ /> </Capabilities> var player = new MediaPlayer(); player.Source = MediaSource.CreateFromUri(new Uri(" player.Play();
6
Background Location Tracking
Extended Execution Reason Check Background Access Request in Foreground private async void StartNavigation(){ session = new ExtendedExecutionSession(); session.Reason = ExtendedExecutionReason.LocationTracking; session.Description = “Turn by Turn Navigation"; session.Revoked += session_Revoked; var result = await session.RequestExtensionAsync(); if (result == ExtendedExecutionResult.Allowed){ StartPeriodicLocationUpdate(); } else { CheckBackgroundAccessAndNotifyUser(); } private async void session_Revoked(object sender, ExtendedExecutionRevokedEventArgs args){ if(args.Reason == ExtendedExecutionRevokedReason.SystemPolicy){ NotifyUser();
7
Run While Minimized Extended Execution Reason Handle Request Result Handle Revoked Event Battery-Aware private async void RequestBackgroundProjectCompilation(){ session = new ExtendedExecutionSession(); session.Reason = ExtendedExecutionReason.Unspecified; session.Description = “Compile Project File"; session.Revoked += session_Revoked; var result = await session.RequestExtensionAsync(); if (result == ExtendedExecutionResult.Allowed){ StartCompilation(); } else { CheckBackgroundAccessAndNotifyUser(); } private async void session_Revoked(object sender, ExtendedExecutionRevokedEventArgs args){ if(args.Reason == ExtendedExecutionRevokedReason.SystemPolicy){ NotifyUser();
8
Restricted Scenarios for Enterprise
5/26/2018 6:51 AM Restricted Scenarios for Enterprise ExtendedBackgroundTaskTime No Execution Time Exceeded on Background Tasks Background Access and Battery Saver still apply ExtendedExecutionUnconstrained ExtendedExecutionForegroundSession Run while Minimized until Standby © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
9
Background Activation with Triggers
5/26/2018 6:51 AM Background Activation with Triggers New Triggers and Capabilities Added Each Release Multi-Instance Resource Grouping Task Grouping Background Activated Overridden Method in XAML Event on CoreApplication Background Access Status User Controls in Settings Battery Saver © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
10
Persistent Event Creation
Background Activation for Frameworks Separate Registrations from AllTasks Background Task Registration Group Event Create Event Registration Token Table . const string MyTaskGroupId = "4F8904E0-3F25-9A0C-41D3-0305E82C3333"; const string MyTaskGroupDebugName = "My Task Group"; var group = BackgroundTaskRegistration.GetTaskGroup(MyTaskGroupId); if (group == null) { group = new BackgroundTaskRegistrationGroup(MyTaskGroupId, MyTaskGroupDebugName); } var builder = new BackgroundTaskBuilder(); builder.Name = "Tasks Name"; builder.IsNetworkRequested = true; builder.TaskEntryPoint = "Tasks.MyTask"; builder.SetTrigger(myTrigger)); builder.TaskGroup = group; builder.Register();
11
Persistent Event Usage
Background Activation for Frameworks App Subscribes to Event App Unsubscribes to Unregister public App(){ this.InitializeComponent(); this.Suspending += OnSuspending; PersistentEvents.MaintenanceWindow += BgWork.Maintenance; } public static void Maintenance(object sender, PersistentEventArgs e) { var def = e.GetDeferral(); UpdateUserContent(); def.Complete(); }
12
Multitasking with the Single Process Model
5/26/2018 6:51 AM Multitasking with the Single Process Model Background Media Playback Location Tracking Run While Minimized Restricted Scenarios for Enterprise Background Activation Persistent Events © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
13
Additional Information
Single Process Model: resume/app-lifecycle Background Activation: resume/create-and-register-an-inproc-background-task Background Task Registration Groups: us/windows/uwp/launch-resume/group-background-tasks Manifest Attributes for Background Tasks: us/windows/uwp/launch-resume/declare-background-tasks-in-the-application- manifest
14
Code Samples Background Media Playback: universal-samples/tree/master/Samples/BackgroundMediaPlayback Extended Execution: samples/tree/master/Samples/ExtendedExecution Background Activation: universal-samples/tree/master/Samples/BackgroundActivation Persistent Events: Events
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.