Estoy escribiendo una clase de biblioteca para encapsular parte de mi lógica en mi primera aplicación de Android. Una de las funciones que quiero encapsular es una función que consulta la libreta de direcciones. Como tal, necesita un ContentResolver
. Estoy tratando de averiguar cómo mantener las funciones de la biblioteca en negro ... es decir, para evitar que cada Activity
pase en su propio contexto para obtener un ContentResolver
.¿Cómo puedo llamar a getContentResolver en android?
El problema es que no puedo entender cómo obtener un ContentResolver
dentro de la función de mi biblioteca. No puedo encontrar una importación que contenga getContentResolver
. Googling dijo que use getContext
para obtener un Context
al que llamar al getContentResolver
, pero tampoco puedo encontrar una importación que contenga getContext
. Las siguientes publicaciones dicen que use getSystemService
para obtener un objeto para llamar al getContext
. PERO - ¡No puedo encontrar ninguna importación que contenga getSystemService
tampoco!
Así que estoy atascado preguntándome, ¿cómo puedo obtener un ContentResolver dentro de una función de biblioteca encapsulada, o estoy bastante atascado haciendo que cada llamada Activity
pase en una referencia a su propio contexto?
Mi código es algo básicamente lo siguiente:
public final class MyLibrary {
private MyLibrary() { }
// take MyGroupItem as a class representing a projection
// containing information from the address book groups
public static ArrayList<MyGroupItem> getGroups() {
// do work here that would access the contacts
// thus requiring the ContentResolver
}
}
getGroups es el método en el que estaba buscando para evitar tener que pasar en un Context
o ContentResolver
si pudiera, como yo esperaba que fuese de forma limpia negro -boxed
¿Cuáles serían los posibles efectos secundarios o "errores" de la extensión de la "Aplicación"? ¿Hubiera algo que necesitaría limpiar en un método destructor o algo así, o? – eidylon
Bien, entonces estoy tratando de seguir esta ruta. Tengo una clase que 'extiende la Aplicación' y he agregado el nombre de la clase totalmente calificado como' android: name' en el archivo de manifiesto de la aplicación. Así que ahora en mi clase de biblioteca, intento llamar a 'getApplication()', pero no lo encuentro como un método, y no me da indicaciones de refactorización de una importación necesaria para agregar. ¿Cómo puedo llamar a 'getApplication()' para obtener el control de la aplicación? – eidylon
No importa, lo tengo calculado. ¡Gracias por la ayuda! ¡Aclamaciones! – eidylon