La durée de vie de la statique (classe) variables

depuis quelques temps j'ai ressenti de l'opinion que statique [instance] les variables existent aussi longtemps que l'application s'exécute. cependant, à mon grand désarroi, et bien d'alarme, j'ai l'impression que c'est pas vrai.

pour de simples tests, j'ai créé une liste statique de chaînes, et dans mon principal activity classe remplacé le onDestroy méthode pour imprimer un message afin de vérifier que l'application est sorti. dans le onCreate méthode j'ai simplement ajouté un nouveau string, et d'imprimer le contenu de la liste. ce que j'ai trouvé est que la taille de la liste est en constante augmentation, et toute la chaîne des valeurs ajoutées précédemment sont toujours présents.

j'ai lu dans les lieux [même ici, sur la de façon à ce que les variables d'instance existera tant que l'application n', mais j'ai peur que cela n'est pas vraiment ainsi.

pour être plus précis, je suis venu à être conscients de ce problème, tout en utilisant le Facebook SDK pour Android. j'ai vu que le AuthListener instances au sein de la liste des auditeurs de la SessionEvents classe ne cesse d'augmenter au fil du temps. Par conséquent, chaque fois que l'application est lancée et que l'utilisateur se connecte à l'aide de FB, les méthodes d'écoute se déclencher autant de fois qu'il y a des cas présents dans la SessionEvents classe.

Quelqu'un a remarqué cela avant, et est-il un cardinal erreur que je commets dans la compréhension de comment android fonctionne?

ce qui donne?

merci pour la lecture!

[Mise à JOUR]
Je suis corrigée par BalusC et rdineiu. Je n'ai vraiment pas moyen de créer une confusion ici sur l'instance et les variables de classe. Hélas, dans ma hâte de poster ma question j'ai commis une erreur que je ne souhaite pas. Je suis très bien conscient de la différence entre static et instance variables. J'ai juste voulu écrire class variables, et ne peuvent pas vraiment comprendre ce qui est venu de se référer à des variables statiques comme instance variables.

Cependant, ma question est toujours debout.
@MisterSquonk - non, je ne suis pas de confusion ici sur quand mon Activity et se termine lorsque l'application est détruit. Voici ce que j'ai essayé sur un échantillon - j'ai UNE seule Activity qui sert de Main. Lorsque j'appuie sur le bouton de retour de ce Activity, je suis en supposant que le Activity obtient retiré de la pile et l'application obtient également détruit. J'ai lancé le Gestionnaire de Tâches pour vérifier que mon application ne fonctionne plus.

les variables statiques != les variables d'instance
Ne sont pas directement liées à votre question, mais en référence à quelque chose que vous avez dit..."dans mon activité principale classe remplacé le onDestroy méthode pour imprimer un message afin de vérifier que l'application est sorti" - à Ne pas confondre l'Activité avec l'Application. Tuer une Activité n'est PAS nécessairement tuer l'Application ("l'application").
non, je ne suis pas de prendre une telle confusion. dans mon application, je suis tout à fait certain que la mise à mort de la activity signifie également que l'application n'est plus en cours d'exécution. j'ai vérifié à l'aide du gestionnaire des tâches, et ont mis à jour le post pour parler de la même chose.

OriginalL'auteur anirvan | 2011-05-28