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