Recommandations en matière d’interruption et de reprise d’une application

Applies to Windows and Windows Phone

Concevez votre application pour qu’elle s’interrompe quand l’utilisateur la quitte et reprenne quand l’utilisateur y revient. Déterminez soigneusement l’objectif et les modèles d’utilisation de votre application afin d’offrir à l’utilisateur la meilleure expérience possible dans les situations d’interruption et de reprise de l’application. Suivez les recommandations ci-dessous pour concevoir le comportement d’interruption et de reprise de votre application Windows Runtime.

Pour obtenir une vue d’ensemble du cycle de vie d’une application Windows Runtime, voir Cycle de vie de l’application.

Remarque  Pour améliorer la réactivité du système dans Windows 8.1 et Windows Phone 8.1, les applications disposent d’un accès à faible priorité aux ressources en cas d’interruption. Pour prendre en charge cette nouvelle priorité, le délai de l’opération d’interruption est prolongé pour que l’application dispose d’un accès de cinq secondes en priorité normale sur Windows et de une à dix secondes sur Windows Phone. Vous ne pouvez pas étendre ni modifier ce délai.

Pratiques conseillées et déconseillées

  • Lorsque l’application reprend après une suspension de courte durée, l’utilisateur doit retrouver l’application dans l’état dans lequel celle-ci se trouvait au moment où il l’a quittée. Par exemple, si l’utilisateur est passé à une autre application avant d’avoir terminé le courrier électronique qu’il rédigeait, il doit être ramené à la page de son courrier électronique au lieu de la page d’accueil principale de l’application de messagerie.
  • Lorsque l’application reprend après une longue période de suspension, l’utilisateur doit être ramené à la page d’accueil par défaut de votre application. Par exemple, il vaut mieux ramener un utilisateur à la page d’accueil principale de votre application d’actualités ou météo plutôt qu’à un article d’actualités ou à des données météorologiques qui ne sont plus à jour.
  • Si vous le souhaitez, vous pouvez donner aux utilisateurs le choix de restaurer l’application à son état antérieur ou de la démarrer de zéro. Par exemple, lorsque l’utilisateur rebascule vers votre application de jeu, un message peut s’afficher pour lui demander s’il souhaite reprendre la partie commencée ou en démarrer une nouvelle.
  • Enregistrez les données de l’application lors de la suspension de celle-ci. Les applications suspendues ne reçoivent aucune notification du système lorsqu’elles sont arrêtées. Il est donc important d’enregistrer de façon explicite les données de ces applications pour garantir la restauration correcte de leur état.

    Si votre application prend en charge plusieurs points de lancement tels que des vignettes secondaires, des notifications toast et des associations d’URI et de fichiers, vous pouvez créer un historique de navigation distinct pour chaque point de lancement. Lors de l’interruption, enregistrez l’état associé au point de lancement principal et n’enregistrez l’état des points de lancement secondaires que dans les scénarios dans lesquels la perte de l’état risquerait de frustrer l’utilisateur. L’enregistrement d’une quantité de données d’état trop élevée peut ralentir la reprise de l’application.

  • Utilisez les données de l’application enregistrées pour restaurer votre application.
  • Libérez les ressources exclusives et les descripteurs de fichiers lors de l’interruption de l’application. Comme nous l’avons dit précédemment, les applications interrompues ne reçoivent aucune notification du système lorsqu’elles sont arrêtées. Lors de l’interruption de votre application, les ressources et les descripteurs (tels que les webcams, les périphériques d’E/S, les périphériques externes et les ressources réseau) doivent donc être libérés afin de pouvoir être utilisés par d’autres applications.
  • Mettez à jour l’interface utilisateur si le contenu a changé depuis sa dernière consultation par l’utilisateur. Le processus de suspension et de reprise doit être transparent pour l’utilisateur de votre application.
  • N’arrêtez pas l’application lorsqu’elle n’est plus à l’écran. Le système d’exploitation fait en sorte que les utilisateurs accèdent aux applications et les gèrent de façon cohérente. Votre application est interrompue lorsqu’elle n’est plus à l’écran. En laissant le système gérer le cycle de vie de l’application, vous avez la garantie que les utilisateurs peuvent y revenir le plus efficacement possible. Par ailleurs, vous optimisez ainsi les performances système et l’autonomie de la batterie de l’appareil.
  • Ne restaurez pas l’état d’une application qui a été explicitement arrêtée par l’utilisateur. Celui-ci a peut-être arrêté l’application à cause d’un état irrécupérable. Dans ce cas, il vaut mieux proposer un redémarrage de l’application plutôt que sa reprise. Si l’application a été arrêtée par l’utilisateur, la propriété PreviousExecutionState a la valeur ClosedByUser.
  • Ne restaurez pas l’état d’une application arrêtée en raison d’un blocage. Si votre application s’est fermée de manière inattendue, partez du principe que ses données sont peut-être endommagées. L’application ne doit pas tenter de restaurer son état antérieur en utilisant ses données enregistrées.
  • Dans l’interface utilisateur de votre application, ne présentez pas de boutons Fermer ni d’autres moyens de quitter l’application. Les utilisateurs doivent faire confiance au système et le laisser gérer leurs applications pour eux. Le système arrête parfois des applications afin de maintenir des performances et une fiabilité optimales. Les utilisateurs peuvent décider de fermer des applications en effectuant les mouvements appropriés sur Windows ou en utilisant le Sélecteur de tâches sur Windows Phone.
  • Ne bloquez pas les utilisateurs sur des pages contenant des liens ciblés. Lorsqu’un utilisateur démarre votre application à partir d’un autre point de lancement que la vignette principale, fournissez-lui un moyen de naviguer vers la page principale de l’application à partir de l’interface utilisateur. Sinon, donnez à l’utilisateur la possibilité d’accéder à cette page principale en tapant sur la vignette principale.

Rubriques connexes

Pour les développeurs (applications Windows Runtime en JavaScript et HTML)
ApplicationExecutionState
Windows.ApplicationModel
Windows.ApplicationModel.Activation
Windows.UI.WebUI
WinJS.Application
Cycle de vie de l’application (vue d’ensemble)
Comment suspendre une application (JavaScript)
Comment relancer une application (JavaScript)
Pour les développeurs (applications Windows Runtime en C#/VB/C++ et XAML)
ApplicationExecutionState
Windows.ApplicationModel
Windows.ApplicationModel.Activation
Windows.ApplicationModel.Core
Windows.UI.Xaml.Application
Cycle de vie de l’application (vue d’ensemble)
Comment suspendre une application (C#/VB/C++)
Comment relancer une application (C#/VB/C++)
Exemples
Exemple d’activation, de suspension et de reprise d’une application à l’aide de WRL
Exemple d’activation et de suspension d’une application à l’aide de WinJS
Prise en main de C# et Visual Basic : exemples Hello World (partie 2)

 

 

Afficher:
© 2014 Microsoft