Comment puis-je appeler getContentResolver dans android?

Je suis en train d'écrire une bibliothèque de classe pour encapsuler des ma logique dans ma première application Android. L'une des fonctions que je veux à encapsuler est une fonction qui interroge le carnet d'adresses. En tant que tel, il a besoin d'un ContentResolver. Je suis à essayer de comprendre comment garder les fonctions de la bibliothèque noire-boîte... c'est pour éviter d'avoir chaque Activity passer dans son contexte propre à obtenir un ContentResolver.

Problème est que je ne peux pas pour la vie de me comprendre comment obtenir un ContentResolver de l'intérieur de ma fonction de bibliothèque. Je ne peux pas trouver une importation qui contient getContentResolver. Googler dit d'utiliser getContext pour obtenir un Context sur laquelle appeler getContentResolver, mais je ne peux pas trouver une importation contenant getContext. À côté des poteaux, a déclaré à l'utilisation getSystemService pour obtenir un objet de l'appel getContext. MAIS je ne peux pas trouver l'importation contenant getSystemService!!!!

Donc je suis coincé en se demandant, comment puis-je obtenir un ContentResolver dans un encapsulé fonction de la bibliothèque, ou je suis un peu coincé avoir à tous les appelant Activity passer une référence à son propre contexte?

Mon code est quelque chose de fondamentalement comme ceci:

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 est la méthode où je cherchais à éviter d'avoir à passer une Context ou ContentResolver si je pouvais, comme je l'espérais avoir proprement tests en boîte noire.

OriginalL'auteur eidylon | 2011-02-04