Variables estáticas, ¿cuál es su vida útil?
Estoy utilizando variables estáticas en mi aplicación, muchos de ellos. Mi pregunta es, cuando salgo de la aplicación que todavía estar en la memoria ..? En caso afirmativo, ¿cómo puedo corregirlo? Gracias por adelantado.
- No se puede encontrar la clase de actividad explícita {}; Has declarado esta actividad en tu AndroidManifest.xml
- El método onClick (View) de tipo oddg debe anular un método de superclase?
- Cómo crear savedInstanceState para la imagen seleccionada dinámicamente en Android?
- No se puede emitir de ActionProvider a ShareActionProvider
- Bloqueo de orientación en android mediante programación
- ¿Cómo interpreta Android la palabra clave @null en los diseños?
- 'Debe sustituir un método de superclase' Errores después de importar un proyecto en Eclipse
- ProcessException: ExecException: Process 'command' /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Content/Home/bin/java
- Espere hasta que se complete la tarea
- Crear proyecto Eclipse desde Android Git
- Manera eficiente de manipular los subprocesos RxJava
- La longitud del archivo es 0 al recrear el archivo desde URI, o filepath original
- Android: dar una vista web esquinas redondeadas?
La variable estática se carga cuando la clase es cargada por ClassLoader, y se quita cuando está descargada
Para los lectores siguientes de esta pregunta-
Como Todo el mundo dijo en la respuesta que las variables estáticas son variables de clase. Permanecen en la memoria hasta que la clase no se descarga de JVM.
En Android usted ha visto que cuando cerramos cualquier aplicación, entonces no se cierra completamente, permanece en la pila de aplicaciones recientes, que se puede ver presionando el botón de inicio (En la mayoría de los dispositivos).
Android itself kicked out those recent apps when the other app needs memory
En Android, la variable estática descarga cuando-
-You force stop your app. -Application crashes. -You clear your app data. -Switch off your Device. -Android kicked out recent app
Además de las otras respuestas, también tenga en cuenta que si esas "variables" estáticas son en realidad constantes "static final" primitivas, entonces realmente no existen como entidades separadas en absoluto, pero su valor se compila directamente en todas las clases que utilizan (No sólo el que los define).
La variable estática vivirá mientras la clase esté cargada en la JVM. Cuando no haya más instancias de la clase que se está ejecutando en la JVM, la clase será descargada y la variable estática será elegible para la recolección de basura.
Las variables estáticas se asocian con una clase y vivirán mientras la clase esté en la memoria (que deja de existir una vez que su aplicación termina).
A veces, desea tener variables que son comunes a todos los objetos. Esto se logra con el static modifier
. Fields that have the static modifier in their declaration are called static fields or class variables
. They are associated with the class, rather than with any object
. Every instance of the class shares a class variable, which is in
una ubicación fija en la memoria . Cualquier objeto puede cambiar el valor de una variable de clase, pero las variables de clase también pueden manipularse sin crear una instancia de la clase.
Cuando la instancia no es el uso, el recolector de basura lo destruirá. Significa que su instancia se borrará de la memoria.
Estoy utilizando variables estáticas en mi aplicación, muchos de ellos.
Las variables estáticas son inmunes contra el administrador automático de memoria y debe establecerlas en null en el método onDestroy
(Android). Pertenecen a una clase segura y exactamente funciona como se entiende @Jigar Joshi .
Variables estáticas se llaman variable de clase y en la forma de ámbito que cargaron cuando la clase se carga y descarga cuando se descarga la clase. Por ejemplo una variable de clase como
private int classinVar;
Se inicializa automáticamente por su valor por defecto cuando se carga la clase, y el mismo concepto es con el abandono cuando se obtiene la salida, entonces esa clase saldría de contexto con su campo estático.
Si es C / C ++, y si usted no recolectó los garbages, usted debe utilizar un programa de la gerencia de la memoria. Si es java, cierre todos los programas "javaw" de la memoria y cierre jvm
Ninguna variable permanece en la memoria después de que la aplicación se detiene.
- Siempre se desvanecen en el marcador de posición con Picasso
- Polygon Detección táctil Google Map API V2