Hopefully someone can help me figure out, if not a solution, at least an explanation for a behaviour.
Le Problème :
Sur certains appareils, en appuyant sur l'icône du lanceur, la tâche en cours est reprise, sur d'autres, cela entraîne le lancement de l'intention de lancement initiale (redémarrage de l'application). Pourquoi cela se produit-il ?
Le Détail :
Lorsque vous appuyez sur l'icône du "Lanceur", l'application démarre normalement - c'est-à-dire, je suppose, qu'une intention est lancée avec le nom de votre première Activity
avec l'action android.intent.action.MAIN
et la catégorie android.intent.category.LAUNCHER
. Cela ne peut cependant pas toujours être le cas :
Sur la majorité des appareils, si vous appuyez sur l'icône du lanceur après que l'application est déjà en cours d'exécution, l'activité en cours d'exécution dans ce processus est reprise (PAS l'activité initiale). Elle reprend de la même manière que si vous l'aviez sélectionnée dans les "Tâches récentes" dans le menu du système d'exploitation. C'est le comportement que je veux sur tous les appareils.
Cependant, sur certains autres appareils, un comportement différent se produit :
-
Sur le Motorola Xoom, lorsque vous appuyez sur l'icône du lanceur, l'application démarrera toujours l'activité de lancement initiale, peu importe ce qui est en cours d'exécution. Je suppose que les icônes de lancement démarrent toujours l'intention "LAUNCHER".
-
Sur le Samsung Tab 2, lorsque vous appuyez sur l'icône du lanceur, si vous venez d'installer l'application, elle lancera toujours l'activité initiale (identique au Xoom) - cependant, après avoir redémarré l'appareil après l'installation, l'icône du lanceur reprendra l'application. Je suppose que ces appareils ajoutent les "applications installées" dans une table de recherche au démarrage de l'appareil, ce qui permet aux icônes du lanceur de reprendre correctement les tâches en cours d'exécution ?
J'ai lu de nombreuses réponses qui semblent similaires à mon problème mais simplement ajouter android:alwaysRetainTaskState="true"
ou utiliser launchMode="singleTop"
pour l'Activity
ne sont pas la réponse.
Éditer :
Après le dernier lancement de cette application, nous constatons que ce comportement a commencé à se produire sur tous les appareils après le premier redémarrage. Ce qui me semble fou mais en examinant le processus de redémarrage, je ne trouve pas ce qui ne va pas.