SlideShare una empresa de Scribd logo
1 de 39
Globalcode – Open4education
Trilha – Universal Windows
Diego Castro | João Ronaldo
Evangelistas Técnicos
www.talkitbr.com
Live Tiles e Background Execution
Globalcode – Open4education
Diego Castro
/dfdcastro
www.talkitbr.com
/talkitbr
João Ronaldo Cunha
/joaoronaldo.cunha
www.talkitbr.com
/talkitbr /joaocunhaeld
Globalcode – Open4education
Agenda
Live Tiles
Tiles
Adaptive Tile
Demo
Background Execution
Criando Background Tasks
Demo
Perguntas e Respostas
Globalcode – Open4education
Tiles
Globalcode – Open4education
Live State
Plate
App Icon
Short Name
Badge
Content
Plate
Short Name
Badge
App Icon
Content
Anatomia
Semi-Live State
Plate
App Logo
Short Name
Badge
Plate
App Logo
Short Name
Badge
Basic State
Plate
App Logo
Short Name
Plate
App Logo
Short Name
Globalcode – Open4education
Basic Templates
Globalcode – Open4education
Templates Legados
O template que você precisa já
existe?
Templates anteriores ainda
são válidos!
Globalcode – Open4education
Secondary Tile
Deep-link no seu app
Separação de conteúdo
Conteúdo relevante para o
usuário
Globalcode – Open4education
Atualizando
Programado
Configurar com “ScheduledTileNotification”
Periódico
Pull URL 30m / 60m / 6h / 12h / 24h
Local
Update em foreground/background
Push
Push services
Globalcode – Open4education
Adaptive Tile
Globalcode – Open4education
XML
<tile>
<visual>
<binding template="TileSmall">
<text>Small</text>
</binding>
<binding template="TileMedium">
<text>Medium</text>
</binding>
<binding template="TileWide">
<text>Wide</text>
</binding>
<binding template="TileLarge">
<text>Large</text>
</binding>
</visual>
</tile>
Globalcode – Open4education
O que podemos fazer
Globalcode – Open4education
Demo
Globalcode – Open4education
Background Tasks
Globalcode – Open4education
O que é
Tarefa que executa em plano de fundo
(background)
Permite executar código da aplicação mesmo
quando ela não estiver em execução.
Usado para:
Atualização de Live Tiles;
Notificações;
Atualização de banco de dados;
Entre outros.
Globalcode – Open4education
Criando Background Task
Implementar interface IBackgroundTask
Analisar custo
O SO está sobrecarregado? Vale a pena executar o
background task num determinado momento?
Tratar o cancelamento da task
Toda background task pode ser cancelada
Executar em deferral
Background task não pode executar de forma
assíncrona.
Indicar progresso
Globalcode – Open4education
Criando Background Task
public async void Run(IBackgroundTaskInstance taskInstance)
{
var cost = BackgroundWorkCost.CurrentBackgroundWorkCost;
if (cost == BackgroundWorkCostValue.High)
{
return;
}
var cancel = new System.Threading.CancellationTokenSource();
taskInstance.Canceled += (s, e) =>
{
cancel.Cancel();
cancel.Dispose();
};
var deferral = taskInstance.GetDeferral();
try
{
await Task.Run(async () =>
{
for (int i = 0; i < 10; i++)
{
taskInstance.Progress = (uint)i * 10;
await Task.Delay(2000);
}
}, cancel.Token);
}
finally
{
deferral.Complete();
}
}
Analisar Custo
Globalcode – Open4education
Criando Background Task
public async void Run(IBackgroundTaskInstance taskInstance)
{
var cost = BackgroundWorkCost.CurrentBackgroundWorkCost;
if (cost == BackgroundWorkCostValue.High)
{
return;
}
var cancel = new System.Threading.CancellationTokenSource();
taskInstance.Canceled += (s, e) =>
{
cancel.Cancel();
cancel.Dispose();
};
var deferral = taskInstance.GetDeferral();
try
{
await Task.Run(async () =>
{
for (int i = 0; i < 10; i++)
{
taskInstance.Progress = (uint)i * 10;
await Task.Delay(2000);
}
}, cancel.Token);
}
finally
{
deferral.Complete();
}
}
Tratar cancelamento
Globalcode – Open4education
Criando Background Task
public async void Run(IBackgroundTaskInstance taskInstance)
{
var cost = BackgroundWorkCost.CurrentBackgroundWorkCost;
if (cost == BackgroundWorkCostValue.High)
{
return;
}
var cancel = new System.Threading.CancellationTokenSource();
taskInstance.Canceled += (s, e) =>
{
cancel.Cancel();
cancel.Dispose();
};
var deferral = taskInstance.GetDeferral();
try
{
await Task.Run(async () =>
{
for (int i = 0; i < 10; i++)
{
taskInstance.Progress = (uint)i * 10;
await Task.Delay(2000);
}
}, cancel.Token);
}
finally
{
deferral.Complete();
}
}
Executar em deferral
Globalcode – Open4education
Criando Background Task
public async void Run(IBackgroundTaskInstance taskInstance)
{
var cost = BackgroundWorkCost.CurrentBackgroundWorkCost;
if (cost == BackgroundWorkCostValue.High)
{
return;
}
var cancel = new System.Threading.CancellationTokenSource();
taskInstance.Canceled += (s, e) =>
{
cancel.Cancel();
cancel.Dispose();
};
var deferral = taskInstance.GetDeferral();
try
{
await Task.Run(async () =>
{
for (int i = 0; i < 10; i++)
{
taskInstance.Progress = (uint)i * 10;
await Task.Delay(2000);
}
}, cancel.Token);
}
finally
{
deferral.Complete();
}
}
Indicar progresso
Globalcode – Open4education
Requisitando Acesso
A aplicação precisa requisitar acesso para rodar
Background Tasks
O Windows 10 não exibe mais a caixa de diálogo,
assim como já era no Windows Phone 8.1.
BackgroundAccessStatus allowed = await BackgroundExecutionManager.RequestAccessAsync();
switch (allowed)
{
// allowed
case BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity: break;
case BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity: break;
// denied
case BackgroundAccessStatus.Denied: break;
// cancelled
case BackgroundAccessStatus.Unspecified: break;
}
Globalcode – Open4education
Registrando a Task
Registramos a Background Task usando o
BackgroundExecutionManager.
Neste momento definimos o trigger e as condições
para rodar a background task.
var task = new BackgroundTaskBuilder
{
Name = nameof(MyBackgroundTask),
CancelOnConditionLoss = false,
TaskEntryPoint = typeof(MyBackgroundTask).ToString(),
};
task.SetTrigger(new SystemTrigger(SystemTriggerType.InternetAvailable, false));
task.AddCondition(new SystemCondition(SystemConditionType.userPresent));
task.Register();
Globalcode – Open4education
Especificando no manifest
No manifest da aplicação registramos uma
extensão da aplicação definindo nossa Task.
Atenção para os tipos definidos para o Background
Task.
<Applications>
<Application Id="App"
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="SampleApp.Tasks.MyBackgroundTask">
<BackgroundTasks>
<Task Type="systemEvent" />
<!-- <Task Type="timer" /> -->
</BackgroundTasks>
</Extension>
</Extensions>
</Application>
</Applications>
Globalcode – Open4education
Demo
Globalcode – Open4education
Executando a Task
A execução de um Background Task é
determinada:
Por trigger.
Por zero ou mais condições.
Posso registrar uma task com diferentes triggers e
diferentes condições.
Globalcode – Open4education
Windows8.1
SystemTrigger
TimeTrigger
MaintenanceTrigger
DeviceUseTrigger
DeviceServicingTrigger
PushNotificationTrigger
Phone8.1
CachedFileUpdaterTrigger
DeviceConnectionChangeTrigger
GattCharacteristicNotificationTrigger
RfcommConnectionTrigger
LocationTrigger
Windows10
AppointmentStoreNotificationTrigger
ContactStoreNotificationTrigger
EmailStoreNotificationTrigger
BluetoothLEAdvertisementWatcherTrigger
BluetoothLEAdvertisementPublisherTrigger
DeviceWatcherTrigger
ActivitySensorTrigger
SensorDataThresholdTrigger
ToastNotificationHistoryChangedTrigger
ToastNotificationActionTrigger
ApplicationTrigger
MediaProcessingTrigger
SocketActivityTrigger
Executando a Task
Triggers
Globalcode – Open4education
Executando a Task
Triggers -Time Trigger
Time Trigger deve ter ao menos 15 minutos para
ser recorrente.
Definir trigger menor faz com que ele seja
executado somente uma vez.
// ...
task.SetTrigger(new TimeTrigger(15, false));
task.AddCondition(new SystemCondition(SystemConditionType.UserPresent));
task.Register();
// ...
Globalcode – Open4education
Executando a Task
Condições do Sistema
User Present
User Not Present
Internet Available
Internet Not Available
Session Connected
Session Disconnected
Free Network Available
Se a rede não tem taxa
para tráfego de dados
Work Cost Not High
Globalcode – Open4education
Tempo Execução da Task
Cancel
(5 seconds)
Memory
Run
(25 seconds)
Default tasks
Mínimo 25 segundos de
execução
5 segundos após receber
sinal de cancelamento.
Memory
Run
(no end)
End
(no warning, for now)
Long-running tasks
Inclui triggers: Application,
Maintenance e DeviceUse
Globalcode – Open4education
Debug e Log
Visual Studio pode disparar background tasks.
Log é registrado em:
Application & Services Logs > Microsoft >
BackgroundTaskInfrastructure
Globalcode – Open4education
Restrições
Cota de CPU = Não
Processamento CPU = Sim (10%)
Tempo mínimo execução = Sim (25s + 5s)
Exceto para long-running tasks
Cota de memória = Sim
Varia de acordo com o dispositivo (min 16MB)
Cota de tráfego de rede = Sim
Varia de acordo com o dispositivo
Globalcode – Open4education
Restrições
No Windows 10 uma aplicação pode ter muitas
background tasks.
Seja consciente! Executar várias background tasks
pode prejudicar a experiência do usuário.
Globalcode – Open4education
Restrições
Quiet hours
Somente quando não estiver sendo usado pelo usuário.
Não são emitidas notificações
Nenhuma background task é executada
Tarefas em andamento são canceladas
Globalcode – Open4education
Restrições
Economia de Bateria
Usuários definem as aplicações que podem executar em
Background
Número de tasks controlado
Identifica tasks abusivas
Globalcode – Open4education
Outros Recursos
In-process Task
Processo padrão
Background task
mantido num processo
a parte
In-process
Maior comunicação
entre app e task
Memória compartilhada
app.exe
Core
Application
Background
Task
task.exe
App Container
app.exe
Core
Application
Background
Task
task.exe
App Container
Globalcode – Open4education
Outros Recursos
Application Service
Client App A
Client App B
Background
Task
App with App
Service
Globalcode – Open4education
Dúvidas?
www.talkitbr.com
Globalcode – Open4education
Contatos
/dfdcastro
www.talkitbr.com
/joaoronaldo.cunha
/talkitbr/TDC2015
/talkitbr
Globalcode – Open4education
Obrigado!
www.talkitbr.com

Más contenido relacionado

Destacado

Aula 7º ano - Reino Plantae
Aula 7º ano - Reino PlantaeAula 7º ano - Reino Plantae
Aula 7º ano - Reino PlantaeLeonardo Kaplan
 
7 ano classificação das plantas
7 ano classificação das plantas7 ano classificação das plantas
7 ano classificação das plantascrisbassanimedeiros
 
Briofitos!!!!!
Briofitos!!!!!Briofitos!!!!!
Briofitos!!!!!Jarg Turc
 
Briofitas E Pteridofitas
Briofitas E PteridofitasBriofitas E Pteridofitas
Briofitas E PteridofitasAndrea Barreto
 
Evolução das plantas Briofitas,Pteridofitas,Gimnospermas e Angiospermas
Evolução das plantas Briofitas,Pteridofitas,Gimnospermas e AngiospermasEvolução das plantas Briofitas,Pteridofitas,Gimnospermas e Angiospermas
Evolução das plantas Briofitas,Pteridofitas,Gimnospermas e AngiospermasSergio Nascimento
 
Briofitas
BriofitasBriofitas
Briofitasjcrrios
 
7º ano reino plantae 1
7º ano    reino plantae 17º ano    reino plantae 1
7º ano reino plantae 1Simone Maia
 
V.2 Briófitas e Pteridófitas
V.2 Briófitas e PteridófitasV.2 Briófitas e Pteridófitas
V.2 Briófitas e PteridófitasRebeca Vale
 
Aula de briófitas, pteridófitas, gimnospermas e angiospermas
Aula de briófitas, pteridófitas, gimnospermas e angiospermasAula de briófitas, pteridófitas, gimnospermas e angiospermas
Aula de briófitas, pteridófitas, gimnospermas e angiospermasFatima Comiotto
 

Destacado (14)

Aula 7º ano - Reino Plantae
Aula 7º ano - Reino PlantaeAula 7º ano - Reino Plantae
Aula 7º ano - Reino Plantae
 
Reino plantae
Reino plantaeReino plantae
Reino plantae
 
7 ano classificação das plantas
7 ano classificação das plantas7 ano classificação das plantas
7 ano classificação das plantas
 
Briofitos!!!!!
Briofitos!!!!!Briofitos!!!!!
Briofitos!!!!!
 
Evolução das plantas
Evolução das plantasEvolução das plantas
Evolução das plantas
 
Briofitas E Pteridofitas
Briofitas E PteridofitasBriofitas E Pteridofitas
Briofitas E Pteridofitas
 
Evolução das plantas Briofitas,Pteridofitas,Gimnospermas e Angiospermas
Evolução das plantas Briofitas,Pteridofitas,Gimnospermas e AngiospermasEvolução das plantas Briofitas,Pteridofitas,Gimnospermas e Angiospermas
Evolução das plantas Briofitas,Pteridofitas,Gimnospermas e Angiospermas
 
Briofitas
BriofitasBriofitas
Briofitas
 
7º ano reino plantae 1
7º ano    reino plantae 17º ano    reino plantae 1
7º ano reino plantae 1
 
V.2 Briófitas e Pteridófitas
V.2 Briófitas e PteridófitasV.2 Briófitas e Pteridófitas
V.2 Briófitas e Pteridófitas
 
Aula de briófitas, pteridófitas, gimnospermas e angiospermas
Aula de briófitas, pteridófitas, gimnospermas e angiospermasAula de briófitas, pteridófitas, gimnospermas e angiospermas
Aula de briófitas, pteridófitas, gimnospermas e angiospermas
 
Reino Plantas
Reino PlantasReino Plantas
Reino Plantas
 
Atividades dde geografia relevo, clima
Atividades dde geografia relevo, climaAtividades dde geografia relevo, clima
Atividades dde geografia relevo, clima
 
Reino plantae
Reino plantaeReino plantae
Reino plantae
 

Similar a Live Tiles e Background Execution em

TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?Rafael Benevides
 
Aula04 phonegap componentes
Aula04 phonegap componentesAula04 phonegap componentes
Aula04 phonegap componentesRoberson Alves
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiatdc-globalcode
 
TDC2018SP | Trilha Mobile - Flutter: do zero a publicacao
TDC2018SP | Trilha Mobile - Flutter: do zero a publicacaoTDC2018SP | Trilha Mobile - Flutter: do zero a publicacao
TDC2018SP | Trilha Mobile - Flutter: do zero a publicacaotdc-globalcode
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanElton Minetto
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaDr. Spock
 
Implementando uma Device Farm Android
Implementando uma Device Farm AndroidImplementando uma Device Farm Android
Implementando uma Device Farm AndroidThialison Souza
 
Ferramentas para desenvolvimento no blockchain Ethereum
Ferramentas para desenvolvimento no blockchain EthereumFerramentas para desenvolvimento no blockchain Ethereum
Ferramentas para desenvolvimento no blockchain EthereumOriginalMy.com
 
TDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
TDC2014 - Desenvolvendo com CocoSharp e Intel PerceptualTDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
TDC2014 - Desenvolvendo com CocoSharp e Intel PerceptualPedro Kayatt
 
Funcionamento interno do node.js e boas práticas
Funcionamento interno do node.js e boas práticasFuncionamento interno do node.js e boas práticas
Funcionamento interno do node.js e boas práticasKirmayr tomaz
 
TDC - Introdução ao Actor Model com Microsoft Orleans
TDC - Introdução ao Actor Model com Microsoft OrleansTDC - Introdução ao Actor Model com Microsoft Orleans
TDC - Introdução ao Actor Model com Microsoft OrleansFabio Gouw
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
Conectando o Android a outros sistemas
Conectando o Android a outros sistemasConectando o Android a outros sistemas
Conectando o Android a outros sistemasElias Junior
 
Desenvolvendo aplicações Adobe AIR para Android
Desenvolvendo aplicações Adobe AIR para AndroidDesenvolvendo aplicações Adobe AIR para Android
Desenvolvendo aplicações Adobe AIR para AndroidEric Cavalcanti
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012Douglas Drumond
 

Similar a Live Tiles e Background Execution em (20)

TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
Aula04 phonegap componentes
Aula04 phonegap componentesAula04 phonegap componentes
Aula04 phonegap componentes
 
Flutter do zero a publicacao
Flutter do zero a publicacaoFlutter do zero a publicacao
Flutter do zero a publicacao
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
 
Flutter do zero a publicacao
Flutter do zero a publicacaoFlutter do zero a publicacao
Flutter do zero a publicacao
 
TDC2018SP | Trilha Mobile - Flutter: do zero a publicacao
TDC2018SP | Trilha Mobile - Flutter: do zero a publicacaoTDC2018SP | Trilha Mobile - Flutter: do zero a publicacao
TDC2018SP | Trilha Mobile - Flutter: do zero a publicacao
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando Gearman
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com Java
 
Implementando uma Device Farm Android
Implementando uma Device Farm AndroidImplementando uma Device Farm Android
Implementando uma Device Farm Android
 
Ferramentas para desenvolvimento no blockchain Ethereum
Ferramentas para desenvolvimento no blockchain EthereumFerramentas para desenvolvimento no blockchain Ethereum
Ferramentas para desenvolvimento no blockchain Ethereum
 
TDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
TDC2014 - Desenvolvendo com CocoSharp e Intel PerceptualTDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
TDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
 
Funcionamento interno do node.js e boas práticas
Funcionamento interno do node.js e boas práticasFuncionamento interno do node.js e boas práticas
Funcionamento interno do node.js e boas práticas
 
TDC - Introdução ao Actor Model com Microsoft Orleans
TDC - Introdução ao Actor Model com Microsoft OrleansTDC - Introdução ao Actor Model com Microsoft Orleans
TDC - Introdução ao Actor Model com Microsoft Orleans
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
Conectando o Android a outros sistemas
Conectando o Android a outros sistemasConectando o Android a outros sistemas
Conectando o Android a outros sistemas
 
TDC Android Wear
TDC Android WearTDC Android Wear
TDC Android Wear
 
Desenvolvendo aplicações Adobe AIR para Android
Desenvolvendo aplicações Adobe AIR para AndroidDesenvolvendo aplicações Adobe AIR para Android
Desenvolvendo aplicações Adobe AIR para Android
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Flutter do zero a publicacao
Flutter do zero a publicacaoFlutter do zero a publicacao
Flutter do zero a publicacao
 
[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012
 

Live Tiles e Background Execution em

Notas del editor

  1. Apresentação Pessoal
  2. Explicar agenda, o que vamos apresentar
  3. - Explicar como é formado um Tile Explicar os 3 tipos de tiles Basic State Semi-Live State Live State
  4. Basic Templates Templates prontos, com posições dos elementos fixas
  5. Explicar que se o template que existe funciona para ele, é melhor usar. Os templates do Windows 8.1 ainda funcionam no 10 sem nenhum problema
  6. Explicar o que é o Secondary Live Tile Explicar quando deve usar esse recurso
  7. - Explicar os tipos de atualizações que são possíveis
  8. Mostrar como é o código incial de cada tamanho de tamplate disponível Falar que o Tile Large é exclusivo Desktop
  9. Mostrar exemplos de tiles Mostrar como é simples e fácil deixar um Tile customizado de acordo com as necessidades do aplicativo
  10. Pode ser causado por falta de recursos do SO.
  11. Diego: Qual a importancia do Deferral? E se eu nao usar? Ao executar uma tarefa assíncrona no Background Task, o SO pode considerar a task como finalizada e teminá-la. Usar deferral garante que a Task não será finalizada pelo SO. O deferral.Complete() sinaliza o SO que a background task terminou o que tinha para fazer.
  12. Ao executar uma tarefa assíncrona no Background Task, o SO pode considerar a task como finalizada e teminá-la. Usar deferral garante que a Task não será finalizada pelo SO. O deferral.Complete() sinaliza o SO que a background task terminou o que tinha para fazer.
  13. O usuário pode prevenir a execução de um background task (app or system level). Mas ele não pode impedir que a aplicação faça a requisição de acesso. Não é esse o caso aqui. O usuário pode negar a execução de background tasks, por exemplo, devido a problemas com a aplicação ou por causa do estado atual do SO.
  14. Para registrar o Background Task usamos o método: Task.register() Para tanto definimos a Task a partir do BackgroundTaskBuilder. Neste definimos as seguintes informações: - Name: deve ser único. Podemos usar o recurso novo do C#5 que é o nameof. O nome será depois usado para acompanhar a Background Task no event viewer. - CancelOnConditionLoss: Nós podemos executar a task mesmo quando perdermos a condição para executar a background task. - EntryPoint: O nome complete do background task.
  15. E importante especificar o type correto para a tarefa. Voce pode especificar mais de um element Task dentro do element BackgroundTasks, cada um especificando os tipos que devem corresponder com os triggers da task.
  16. Diego: Questionar se as triggers do 8.1 ainda funcionam no 10
  17. Diego: O usuario ficou 15 min sem estar logado, acionou o trigger, passou mais 15 min e ele nao logou. Quando logar vai ser enviado quantas vezes?
  18. Diego: Sempre vou ter 25 segundos?
  19. No Windows desktop podemos ter até 8 background tasks executando simultâneamente. Isso pode ser diferente no Windows Mobile.
  20. Em Quite Hours ainda estão disponíveis Toast VOIP e Toast Alarm
  21. Em Quite Hours ainda estão disponíveis Toast VOIP e Toast Alarm