Selon le Android documentation, le système d'effacer une tâche (terminer toutes les Activités au-dessus de celle qui a lancé la tâche) qu'elle estime avoir été abandonnée par l'utilisateur:
https://developer.android.com/guide/components/tasks-and-back-stack.html#Clearing
Si l'utilisateur quitte une tâche pendant une longue période, le système efface la tâche de toutes les activités à l'exception de la racine de l'activité. Lorsque l'utilisateur retourne à la tâche, seule la racine activité est rétabli. Le système se comporte de cette manière, parce que, après un certain laps de temps, les utilisateurs ont probablement abandonné ce qu'ils faisaient avant et sont de retour à la tâche pour commencer quelque chose de nouveau.
https://developer.android.com/guide/topics/manifest/activity-element.html#always
Normalement, le système efface une tâche (supprime toutes les activités de la pile au-dessus de la racine de l'activité) dans certaines situations, lorsque l'utilisateur re-sélectionne que des tâches de l'écran d'accueil. Généralement, cela se fait si l'utilisateur n'a pas visité la tâche pour un certain laps de temps, comme 30 minutes.
Ce comportement peut être facilement reproduit sur les appareils fonctionnant en pain d'épice et les versions antérieures. Lancer une application et créer une histoire, puis appuyez sur le bouton de la maison et attendre une demi-heure. Le lancement de l'application à nouveau à partir de l'écran d'accueil et l'état a été effacé, comme si c'était de commencer une nouvelle tâche. Parfait.
Cependant, sur les appareils sous ICS et ci-dessus, je n'arrive pas à reproduire ce comportement à tous, même après une tâche a été inactif après plusieurs heures ou plusieurs jours. Lorsqu'une application est relancée à partir de l'écran d'accueil, la tâche est toujours en l'état, je l'ai laissé dans.
En supposant que la documentation est correcte, sous quelles conditions les modernes versions d'Android (API 14+) effacer automatiquement une tâche?
Si le comportement a changé, et la documentation est à jour, quel est le but de l' alwaysRetainTaskState
d'attribut pour <activity/>
? A la valeur par défaut a changé d' "true"
ou est-ce un attribut maintenant obsolète?
Note: je ne parle pas de la Android du processus de gestion du cycle de vie, qui sera périphérique tributaires de ressources. Tuer un processus devrait être transparent pour l'utilisateur de toute façon et n'affecte pas l'état de la tâche.