Задать вопрос

Как в Service реализовать ContentProvider?

В android studio создал сервис и приложение - два разных проекта, которые работают на одном устройстве. Сервис раз в минуту вставляет записи в таблицу своей БД, которые затем нужно запрашивать в приложении.
Расшарить базу данных Сервиса хочу с помощью ContentProvider. Это возможно? (поскольку и Сервис и ContentProvider имеют свою четко определенную структуру и набор методов)

Если делать два приложения, одно без Activity в нём ContentProvider, второе с Activity в нём обращаемся к провайдеру первого - всё понятно, всё работает.

В моём случае Сервис и Приложение, пытаюсь по аналогии обратиться к провайдеру Сервиса - курсор пустой.
Cоздал в Сервисе класс провайдера со всеми его методами и константами:
public class MyContactsProvider extends ContentProvider ....

Прописал его в манифесте.
далее в методе onStartCommand делаю так:
public int onStartCommand(Intent intent, int flags, int startId) {
        ContentProvider myContactsProvider = new MyContactsProvider();
        myContactsProvider.onCreate();
        return START_REDELIVER_INTENT;
    }

Не могу понять, что и как еще нужно прописать в Сервисе, чтобы заработал его провайдер?
  • Вопрос задан
  • 86 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
thelongrunsmoke
@thelongrunsmoke
Программист
Вам не нужно инициализировать провайдер, чтобы получить доступ к нему. Проверяйте описание в манифесте, разрешения и URI к которому вы обращаетесь в ContentResolver или лоадере.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы