Maison > Questions et réponses > le corps du texte
Activity中的成员变量被赋值之后,Actiity被回收的时候内存才会被释放吗
java中一个类中的成员变量被赋值之后,这个类对象被回收时,类中得成员变量才会被释放内存吗
大家讲道理2017-04-18 10:51:07
Ce problème doit être classé sous Java. Tant que l'objet auquel Activity
appartient est conservé de manière statique, l'intégralité de Activity
existera toujours en mémoire, à moins que WearReference
.
Ce qui suit est une démonstration de code d'erreur similaire :
private static Context sContext;
public static void setContext(Context context) {
sContext = context;
}
Si vous utilisez Android Studio, l'EDI affichera un avertissement : n'attribuez pas l'objet Contexte à des variables statiques.
伊谢尔伦2017-04-18 10:51:07
La description de la question n'est pas claire, et il n'y a pas de commentaires négatifs sur la ponctuation. Mais essayez de répondre :
Les objets globaux ne doivent être que des variables modifiées par le modificateur statique. Les variables après modification statique appartiennent à cette classe (. classe), ou en d'autres termes Changer tous les objets correspondant à la classe, plutôt que d'appartenir à un certain objet, vous devriez pouvoir vous rendre compte qu'il est faux qu'un objet soit recyclé pour provoquer le recyclage de la statique ( comment utiliser d'autres objets qui ont été recyclés)
C'est mentionné ici Activité, développons-le à nouveau Dans des circonstances normales, il est acceptable d'utiliser des variables statiques pour référencer l'objet actuel (comme le mode singleton), mais dans le Conception d'Android, Activity n'est pas une classe ordinaire. Elle a son propre cycle de vie et sera supprimée à son expiration (car la fonction est trop puissante et la mémoire occupée est trop grande). Il y a donc un problème d'utilisation statique. référence à l'activité en cours pour signaler une fuite de mémoire.