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