De acuerdo con JournalDev
El patrón Singleton restringe la creación de instancias de una clase y garantiza que solo exista una instancia de la clase en la máquina virtual de Java. La clase singleton debe proporcionar un punto de acceso global para obtener la instancia de la clase.
Esto se usa en Android en lugares donde es necesario cerrar un recurso para evitar pérdidas de memoria. La base de datos SQLite es un buen ejemplo de esto, así como cualquier clase o biblioteca que no sea Activity / Fragment que requiera un Fragment.
- ¿Por qué las aplicaciones de Android como Facebook, Whatsapp y Viber siguen ejecutando un servicio en segundo plano a pesar de tener la opción de notificaciones push?
- ¿Los lanzadores de Android ralentizan el rendimiento móvil?
- ¿Cuál es la mejor aplicación de chat móvil 2016?
- ¿Es posible construir aplicaciones de Android con inteligencia artificial implementadas en Android Studio? ¿Cuáles son los pasos básicos?
- ¿Dónde puedo encontrar las preguntas marcadas como respuesta más tarde por mí en la aplicación de Android Quora?
Por esta razón, para limitar el número de instancias de la base de datos SQLite que crea su aplicación, puede usar un patrón singleton que devuelva solo una instancia de SQLite. Aquí hay un ejemplo
DatabaseHelper estática privada mDatabaseInstance = null;
Public static DatabaseHelper newInstance (contexto de contexto) {
// primero verifica si el asistente de la base de datos
// los datos del miembro son nulos
// crea uno nuevo si es nulo
if (mDatabaseInstance == null) {
mDatabaseInstance = new DatabaseHelper (context.getApplicationContext ());
}
// de cualquier manera, siempre tenemos que devolver una instancia de
// nuestra clase de base de datos cada vez que se llama a este método
return mDatabaseInstance;
}
Private DatabaseHelper (contexto de contexto) {
super (contexto, Constantes.DATABASE_NAME, nulo, CUR_DATABASE_VERSION);
mContext = contexto;
}
}
Si está comenzando con el desarrollo de Android, es posible que no tenga que preocuparse mucho por esto, ya que las tecnologías de bases de datos modernas, como Realm Database y Firebase database, se encargan de esto.