« S’il vous plait m’sieur, j’peux avoir plus de temps pour mémoriser des données avant ? »
Dans l’App.Xaml.cs, vos pouvez « solliciter » le système pour qu’il vous attribue du rab pour finaliser une sauvegarde lorsque votre application passe à l’état de « Onsuspending » :
On lui demande via ExtendedExecutionSession. et ce qui est marrant c’est qu’on doit se justifier 🙂 avec ExtendedExecutionReason.
Entre le deferral qui permet d’indiquer au système que vous utilisez par exemple du code async et que vous avez besoin d’un peu de temps pour finaliser
private void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
using (var session = new ExtendedExecutionSession{ Reason = ExtendedExecutionReason.SavingData})
{
session.Description = "Envoi des data";
if (await session.RequestExtensionAsync () == ExtendedExecutionResult.Denied)
//le système veut pas, j'ai que 3 secondes
SauvegardeRapide();
else
//le système est ton pot, tu as 8 secondes
SauvegardeComplete();
}
deferral.Complete();
}
{
var deferral = e.SuspendingOperation.GetDeferral();
using (var session = new ExtendedExecutionSession{ Reason = ExtendedExecutionReason.SavingData})
{
session.Description = "Envoi des data";
if (await session.RequestExtensionAsync () == ExtendedExecutionResult.Denied)
//le système veut pas, j'ai que 3 secondes
SauvegardeRapide();
else
//le système est ton pot, tu as 8 secondes
SauvegardeComplete();
}
deferral.Complete();
}
Facile non?