#win8aca : how and when metro style apps run

Post on 28-Nov-2014

1.296 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Apps do not get notified when

they are getting terminated

demo

User

Launches

App

Splash

screen

//Register for the Suspending event and call suspendingHandler when received Windows.UI.WebUI.WebUIApplication.addEventListener("suspending", suspendingHandler); //Handle the suspending event and save the current user session using WinJS sessionState function suspendingHandler(eventArgs) { //We are getting suspended } //Register for the Resuming event and call resumingHandler when received Windows.UI.WebUI.WebUIApplication.addEventListener("resuming", resumingHandler); function resumingHandler() { //We are getting resumed, in general do nothing }

demo

Scenario You should….

demo

demo

Running app

Tile launch activation

User taps on Tile launch

eventArgs.kind Splash Screen shown

activated event

HTTP POST

Notification Delivered

Trigger Condition

InternetAvailable,

InternetNotAvailable,

SessionConnected,

SessionDisconnected,

UserNotPresent,

UserPresent

TimeTrigger*

PushNotificationTrigger*

SessionStart*

ControlChannelTrigger*(**)

ServicingComplete

SessionConnected

SessionDisconnected

SmsReceived

TimeZoneChange

UserAway/UserPresent,

LockScreenApplicationAdded/Removed

OnlineIdConnectedStateChangeInternetAvailable

InternetAvailable/InternetNotAvailable

NetworkNotificationChannelReset

NetworkStateChange

MaintenanceTrigger

PushNotificationTrigger**

*requires lock permission

**can run in App (not BackgroundHost.exe)

function RegisterSampleBackgroundTaskWithCondition()

{

var builder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();

builder.name = "BackgroundTestWorker";

builder.taskEntryPoint = "BackgroundTestWorker.js";

// run a timetrigger for every 15 minutes

var myTrigger = new Windows.ApplicationModel.Background.TimeTrigger(15, true);

builder.setTrigger(myTrigger);

// required condition: internetAvailable

var condition = new

Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.Sys

temConditionType.internetAvailable);

builder.addCondition(condition);

// register the task

var task = myTaskBuilder.register();

task.addEventListener("progress", task_Progress);

task.addEventListener("completed", task_Completed);

}

<Application Id="App" StartPage="default.html"> <VisualElements DisplayName="SimpleBackgroundTask" Logo="images\logo.png" SmallLogo="images\smalllogo.png" Description="SimpleBackgroundTask" ForegroundText="light" BackgroundColor="#000000"> <LockScreen Notification="badge" BadgeLogo="badgelogo.png" /> <SplashScreen Image="images\splashscreen.png" /> </VisualElements> <Extensions> <Extension Category="windows.backgroundTasks" StartPage="backgroundTaskLogger.js"> <BackgroundTasks> <Task Type="timer" /> <Task Type="systemEvent" /> </BackgroundTasks> </Extension> </Extensions> </Application>

demo

CPU resource quota Refresh period

Lock screen app

Non-lock screen app

top related