Top Banner
Vitor Meriat Software Development Engineer @vitormeriat vitormeriat.com.br O ciclo de vida da aplicação Universal Windows Platform Criando APPs inteligentes e responsivas
22

TDC 2015 SP - O ciclo de vida de aplicações UWP

Aug 15, 2015

Download

Technology

Vitor Meriat
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: TDC 2015 SP - O ciclo de vida de aplicações UWP

Vitor MeriatSoftware Development [email protected]

O ciclo de vida da aplicação Universal Windows Platform  Criando APPs inteligentes e responsivas

Page 2: TDC 2015 SP - O ciclo de vida de aplicações UWP

UM WINDOWS

PhoneDesktops

& All-in-OnesClassic Laptop

XboxTablet

Page 3: TDC 2015 SP - O ciclo de vida de aplicações UWP

Application lifecycle

Page 4: TDC 2015 SP - O ciclo de vida de aplicações UWP

Installation1

Page 5: TDC 2015 SP - O ciclo de vida de aplicações UWP

Activation2 NotRunning

Page 6: TDC 2015 SP - O ciclo de vida de aplicações UWP

Activation2

Event

Handlers

UI

Page 7: TDC 2015 SP - O ciclo de vida de aplicações UWP

Running

Suspending3

Page 8: TDC 2015 SP - O ciclo de vida de aplicações UWP

Suspended

Event

Handlers

UI

Page 9: TDC 2015 SP - O ciclo de vida de aplicações UWP

Application LifetimeApps can be in 1 of 3 states

Not RunningRunningSuspended

Application receive events when transitioning between states

Except: Suspended->NotRunning

Running

SuspendedNotRunning

Activated Suspending

Resuming

Page 10: TDC 2015 SP - O ciclo de vida de aplicações UWP

App Lifecycle

Runningapp

Suspendedapp

Suspending Terminatedapp

Low memory

Resuming

Background task executes

Page 11: TDC 2015 SP - O ciclo de vida de aplicações UWP

http://windows.Microsoft.com

Application Lifetime

Running Suspended Running Suspended Not Running

Launched Suspended(5 seconds)

Activated Suspended(5 seconds)

Mem

ory

Terminated(no event)

Page 12: TDC 2015 SP - O ciclo de vida de aplicações UWP

OnNavigatedFrompublic override Task OnNavigatedFromAsync(IDictionary<string, object> state, bool suspending){ if (suspending) { state["FirstName"] = this.FirstName; state["LastName"] = this.LastName; state["Email"] = this.Email; } return Task.FromResult<object>(null);}

Page 13: TDC 2015 SP - O ciclo de vida de aplicações UWP

OnNavigatedTopublic override void OnNavigatedTo(string parameter, NavigationMode mode, IDictionary<string, object> state){ try { this.FirstName = state["FirstName"].ToString(); this.LastName = state["LastName"].ToString(); this.Email = state["Email"].ToString(); } finally { state.Clear(); }}

Page 14: TDC 2015 SP - O ciclo de vida de aplicações UWP
Page 15: TDC 2015 SP - O ciclo de vida de aplicações UWP
Page 16: TDC 2015 SP - O ciclo de vida de aplicações UWP

Extended execution

Page 17: TDC 2015 SP - O ciclo de vida de aplicações UWP

Extended execution• Requesting extended execution• There is no guarantee resources are available

Extended execution has no UI

• Scenario “I have data this time”• Handle the Revoked event (1 second warning)

• Scenario “I’m a special kind of app”• These apps run indefinitely

• Special kinds of apps1. Turn-by-turn (location tracking) app2. Audio & VOIP application

Page 18: TDC 2015 SP - O ciclo de vida de aplicações UWP

There is a balance between load speed & shutdown time

Page 19: TDC 2015 SP - O ciclo de vida de aplicações UWP

Extended execution (type 1)M

em

ory

Running Extend

Suspended(5 seconds)

Request Revoked(1 second)

Suspended

No UI(short)

Suspended(No event)

Whensuspendin

g

Page 20: TDC 2015 SP - O ciclo de vida de aplicações UWP

Requesting extension in suspend• private async void OnSuspending(object sender, SuspendingEventArgs args)

{ var deferral = e.SuspendingOperation.GetDeferral(); using (var session = new ExtendedExecutionSession{ Reason = ExtendedExecutionReason.SavingData }) { session.Description = "Upload Data";

• session.Revoked += (s, e) => { Log("Save incomplete"); };

try { if (await session.RequestExtensionAsync() == ExtendedExecutionResult.Denied) // takes 3 seconds

• UploadBasicData(); else // takes 8 seconds

• await UploadDataAsync(session); Log("Save complete"); } catch { Log("Save failed"); } finally { deferral.Complete(); } } }

Page 21: TDC 2015 SP - O ciclo de vida de aplicações UWP

How Windows interacts with you app?

Suspend and resume

Background execution

Resource management

System triggers and notifications

Page 22: TDC 2015 SP - O ciclo de vida de aplicações UWP

[email protected]@studentpartner.com