Я пишу класс библиотеки, чтобы инкапсулировать часть моей логики в моем первом приложении для Android. Одна из функций, которую я хочу инкапсулировать, - это функция, которая запрашивает адресную книгу. Как таковой, ему требуется ContentResolver
. Я пытаюсь понять, как сохранить библиотечные функции в черном ящике... то есть, чтобы не пропускать каждый Activity
в своем контексте, чтобы получить ContentResolver
.
Проблема в том, что я не могу для жизни понять, как получить ContentResolver
из моей библиотечной функции. Я не могу найти импорт, содержащий getContentResolver
. Googling сказал, чтобы использовать getContext
, чтобы получить Context
, на который вызывать 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
, если бы мог, поскольку я надеялся, что он будет чисто черным.