Pregunta

Escribí una biblioteca de redes para mi aplicación de Android y quiero poder acceder a un valor de URL que definí en mi strings.xml archivo de esa biblioteca.El problema es que la biblioteca no es una Actividad o Fragmento ni nada por el estilo, por lo que no tiene acceso al Contexto normal ni a otras cosas que te ofrece ser un ciudadano de Android de primera clase.¿Hay alguna forma de acceder al valor sin tener un contexto (o sin pasar uno durante las llamadas a funciones desde actividades y fragmentos)?

Sé que puedo acceder a R clase fácilmente, pero todo lo que me da son compensaciones de bytes: necesito el getString() método para convertir ese desplazamiento en algo significativo a menos que quiera divertirme mucho jugando en el terreno de los bytes sin formato (lo cual me gustaría evitar).

¡Gracias!

¿Fue útil?

Solución

No, no hay, y el análisis manual de datos de bajo nivel no es definitivamente la solución aquí. El objetivo de los recursos se recuperará de acuerdo con la calificación de contexto (de ahí el poderoso sistema de clasificaciones), y es por eso que hice esa sugerencia en la otra pregunta que acabas de preguntar. - -)

A menos que proporcione una forma (parámetro del método, por ejemplo), no podrá recuperar el recurso. Se trata de un punto en el que debe replantear la arquitectura de su biblioteca: ¿por qué necesita que el URI sea calificado ? Si está en una biblioteca, la aplicación cliente tendrá su propio contexto, y puede suministrar de manera segura a su biblioteca, recuperando así el recurso. Si ese no es el punto (es decir, accede al URI en el código), entonces no debe estar usando un recurso, sino una variable estática final en su lugar, como lo sugerí.

Hay algunos casos en los que puede beneficiarse de la capacidad de los calificadores cuando se trata de URI, pero, como dije, si está utilizando solo en su biblioteca, es probable que desee una variable definida en su código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top