Comment fonctionne android: noHistory= "true"?
disons que j'ai une activité de base avec un menu, quand je clique sur l'item de menu A, il va à l'activité A. j'ouvre le menu à nouveau, et je passe à B. De B je retourne à A, et retour et quatrième comme ceci pendant un certain temps.
Donc la pile serait Une, B, A, B, A, B, .... Et quand j'appuie sur le bouton arrière, il recule dans la pile comme prévu.
cependant disons que je ne veux pas de cette fonctionnalité, donc j'ajoute à mon manifeste, android:noHistory="true"
. Donc quand j'appuie sur le bouton arrière, il sort du application au lieu d'aller à travers la pile.
Maintenant l'illusion qu'il semble, disons que si je suis en activité, j'utilise le menu et allez à l'activité B, la pile serait juste B, parce que je ne peux pas retourner à A.
mais, en utilisant noHistory="true"
, est-ce que la vraie pile de A, B, A, B existe? Plutôt, Est-ce que chaque appel à une activité en utilisant le menu instanciant une nouvelle copie de cette activité, mais l'utilisateur ne peut pas la voir? Cela poserait-il des problèmes de ressources?
Ou lorsque noHistory="false"
, est-ce que le bouton de retour appelle juste quelque chose comme startAcitvity(intent)
encore ou est-ce en train de parcourir chaque nouvelle copie qui a été instanciée?
je suis préoccupé par les problèmes de ressources et de ne pas ralentir un utilisateur appareil android.
3 réponses
docsnoHistory
:
une valeur de "vrai" signifie que l'activité ne laissera pas de trace historique. Il ne restera pas dans la pile d'activités pour la tâche, de sorte que l'utilisateur ne sera pas en mesure d'y retourner.
Concernant votre question:
la véritable pile de A, B, A, B existe-t-elle?
Le docs indiquerait Non.
Je m'inquiète des ressources problèmes et ne pas ralentir un utilisateur appareil android.
Vous n'avez vraiment pas besoin de s'inquiéter à ce sujet. L'OS devrait gérer le nettoyage des activités lorsque la mémoire est en baisse. Il est plus probable qu'une mauvaise utilisation des bitmaps ou de la logique dans vos activités entraînera des ralentissements de performance.
android: noHistory= "true" works : -
supposons que vous avez ouvert "de votre application".
Vous êtes sur la page d'accueil de l'Activité de maintenant,
Après vous allez à l'autre(deuxième) de l'activité.Ici de la deuxième activité vous appuyez sur le bouton d'accueil de l'appareil mobile ou ouvrez une autre application.
maintenant encore une fois si vous ouvrez "votre application" il ira à la page d'accueil de l'application au lieu d'aller à l'activité que vous avez quitté l'application(I. E. deuxième activité).
j'avais peu de fragments dans mon application et il me semblait difficile de sortir de l'écran d'accueil en appuyant sur le bouton back sans entrer dans L'activité de Lancement de mon application. J'ai utilisé android: noHistory= "true" dans le manifeste de l'activité de lancement de mon application et le problème est résolu maintenant.