¿Puede el recolector de basura desasignar una instancia singleton? (Y por qué o cómo evitarlo)
En Android tengo clase singleton pero no estoy seguro de si el recolector de basura puede desasignarlo.
Si el recolector de basura desasignará mi clase singleton, ¿cómo evitarlo de la desasignación?
- Android: Mejor manera de guardar los datos almacenados en la clase Application Singleton
- ¿Es una práctica aceptable usar Objetos Singleton para guardar el estado o compartir datos entre Actividades?
- Servicio de Android Creación de una nueva instancia de clase Singleton
- El servicio de Android no funciona como singleton
- Singletons vs. Contexto de la aplicación en Android?
- Acceso al objeto GoogleApiClient en Todas las actividades
- Uso del servicio como singleton en Android
- SQLite incapaz de abrir el archivo de base de datos (código 14) en la consulta "SELECT" frecuente
- Picasso Singleton Uso
- Fragmento no UI vs Singleton
- Singleton se destruye
- Android: Singleton que se utiliza entre Actividad y Servicio
- Clase de Aplicación SingleTon de Kotlin
La recolección de basura recoge objetos a los que no se señala nada, a menos que una referencia sea estática. ¿Se abren campos estáticos para la recolección de basura?
La única razón por la que gc repartirá tu instancia es si toda la aplicación se destruye …
Hay muchas maneras de implementar un Singleton. Uno de los mejores es:
public static enum My { SINGLETON; }
Si algo es un singleton no tiene nada que ver con si es GCed o no. Un objeto será GCed si no hay referencias Strong a él. Busque ( http://weblogs.java.net/blog/2006/05/04/understanding-weak-references ).
Hay un tema más de interés. En Android, su aplicación no controla su ciclo de vida. Es posible que un proceso se termine y se vuelva a crear de una manera que no espera. Si esto ocurre, las variables finales estáticas serán reinicializadas. Hay más en eso aquí:
http://portabledroid.wordpress.com/2012/05/04/singletons-in-android/
- Cómo establecer un oyente de clic largo en un MenuItem (en un NavigationView)?
- Android: flujo maestro / detallado (panel dual) con 1 actividad