Android: Acceso a recursos sin una actividad o referencia de contexto

Estoy publicando esta pregunta con la esperanza de que pueda obtener algún tipo de respuesta definitiva.

¿Es realmente imposible acceder a los recursos sin una referencia de actividad o contexto. Pasar alrededor de tales referencias cuando todo lo que se requiere es acceder a algunos valores o activos o cadenas que no tienen nada que ver con la interfaz de usuario hace que el código demasiado complicado.

Además de todas esas referencias pendientes potenciales.

También esto arruina completamente varios patrones de diseño tales como singletons, teniendo que proporcionar parámetros al conseguir la instancia.

Poner una referencia estática

Así que hay una manera o no toda la comunidad acaba de vivir con este problema.

Sus recursos se agrupan en un contexto, es un hecho y no se puede cambiar eso.

Esto es lo que puede hacer:

Amplíe la Application , obtenga el contexto de la aplicación y utilícelo como auxiliar estático.

 public class App extends Application { private static Context mContext; public static Resources getResources() { return mContext.getResources(); } public void onCreate() { super.onCreate(); mContext = getApplicationContext(); } } 

Su manifiesto:

 <application android:icon="@drawable/icon" android:label="@string/app_name" android:name="your.package.path.to.App"> 

Haga que su clase de Application singleton y use eso. Es un Context . Todos los recursos están vinculados a su aplicación, por lo que necesita una referencia de Context . Puede cargar previamente cadenas, etc. en una clase singleton si no desea cargarlas dinámicamente.

  • Android: descarga la imagen desde la URL a la carpeta de activos
  • Android: buenas prácticas para organizar dirs y archivos en almacenamiento Tarjeta SD?
  • ¿Por qué resource.getStringArray (int) lanzará una excepción?
  • Texto con formas en recurso dibujable
  • Cómo leer el archivo de res / raw por nombre
  • Otros recursos $ NotFoundException en setContentView
  • Android XML Cómo obtener un ID de recurso (entero) de XML
  • Android: getString () de los recursos pierde las etiquetas de la cadena
  • Alcance de los valores de R.id
  • Recursos compilados de Android - resources.arsc
  • Diferentes carpetas de valores en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.