Técnica para obtener ApplicationContext en cualquier lugar
Recientemente descubrí un fragmento que utiliza la siguiente técnica para acceder de forma estática desde cualquier lugar al contexto de la aplicación. Parece fresco, pero es realmente una buena opción o es una mala tecnología por alguna razón?
public class MyApp extends Application { private static MyApp instance; public static MyApp getInstance() { return instance; } public static Context getContext(){ return instance.getApplicationContext(); } @Override public void onCreate() { super.onCreate(); instance = this; } }
- Añadiendo el proyecto android a git
- ¿Cómo hacer una matriz de org.apache.http.Header?
- Cómo crear un número variable de vistas de texto en android
- Android - cómo agregar @hide anotación en mi proyecto
- La solicitud de servicio web no funciona en el navegador android android; Pero está trabajando en el navegador de PC
- Android N Java 8 características (Jack compilador) y Kotlin interoperabilidad
- ¿Dónde debo declarar mis variables?
- Android JNI obtiene dos campos de la clase Java
- Expresión regular de Android para obtener enlaces de la fuente de la página web
- ¿Cómo agregar un menú en un fragmento?
- Java Static Variable se convierte en nulo
- Android - Acceso a la base de datos en línea SQlite
- Crear carpeta en Android
A menos que usted simplemente exponga un método público que toma un Context
como un argumento dentro de sus clases que requieren Context
(y pasarlo de su Activity
, etc), esta es la manera de hacerlo.
Esto sin duda funcionará. Sólo tenga cuidado como con el uso de cualquier singleton que no abusar de ella. Lea la respuesta a esta pregunta explicando por qué el ApplicationContext rara vez (aunque a veces) el Contexto adecuado para usar.
Además, tener el ApplicationContext disponible en todas partes le permite ser más descuidado con la forma de organizar sus clases, ya que no tendrá que pensar en qué funcionalidad realmente necesita el ApplicationContext y si debe factor de que, etc Eso es sólo un tal vez dependiendo Qué disciplinado eres.
Siempre soy bastante cauteloso de singletons aunque otras personas notables discrepan, pero creo que todavía se debate bastante ampliamente si singletons son un patrón o anti-patrón. Si usted Google singleton y anti-patrón encontrará artículos como este que hacen algunos puntos bastante buenos en mi opinión.
- ActivityCompat.requestPermissions no muestra el mensaje
- Añadir valores dinámicamente en un largo matriz