Как я могу вызвать getContentResolver в Android?

Я пишу класс библиотеки, чтобы инкапсулировать часть моей логики в моем первом приложении для Android. Одна из функций, которую я хочу инкапсулировать, - это функция, которая запрашивает адресную книгу. По сути, ему нужен ContentResolver . Я пытаюсь выяснить, как сохранить функции библиотеки в черном ящике ... то есть избежать передачи каждого Activity в своем собственном контексте для получения ContentResolver .

Проблема в том, что я хоть убей не могу понять, как получить ContentResolver из моей библиотечной функции. Я не могу найти импорт, содержащий getContentResolver . Googling сказал использовать getContext для получения контекста для вызова getContentResolver , но я не могу найти импорт, содержащий getContext . . В следующих сообщениях говорится об использовании getSystemService для получения объекта для вызова getContext . НО - я тоже не могу найти импорт, содержащий getSystemService !

Итак, я застрял в вопросе, как мне получить ContentResolver внутри инкапсулированной библиотечной функции, или я в значительной степени застрял в том, что каждое вызывающее Activity передает ссылку на свой собственный контекст?

Мой код примерно такой:

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 - это метод, в котором я хотел избежать передать в Context или ContentResolver , если бы я мог, поскольку я надеялся, что он будет полностью помещен в черный ящик.

12
задан Brian Tompsett - 汤莱恩 11 June 2015 в 14:50
поделиться