Контент-провайдер: где именно он создается и хранится?

Я создал поставщика контента для своего приложения. Я хотел знать, где именно находится местоположение или путь к базе данных, созданной в контент-провайдере. Удаляются ли при удалении приложения и поставщики контента? Если я хочу изменить количество столбцов в контент-провайдере, как мне его обновить?


person peakycoder    schedule 07.06.2018    source источник


Ответы (2)


Контент-провайдер — это не база данных, а компонент, который предлагает некоторые преимущества, такие как возможность поиска контента с основного устройства. БД не зависит строго от поставщика контента. Что делает контент-провайдер, так это предоставляет интерфейс к базе данных с помощью Uri и авторитета. Итак, чтобы ответить на ваш вопрос, да, если вы отмените свое приложение, вы также отмените БД, потому что отмена приложения и даже класс поставщиков контента будут отменены

person trocchietto    schedule 07.06.2018

Быстрый поиск по SO:

где именно находится расположение или путь к базе данных, созданной в контент-провайдере

см. это

«То, как контент-провайдер на самом деле хранит свои данные под прикрытием, зависит от его дизайнера».

Удаляются ли при удалении приложения и поставщики контента?

см. это

Есть 2 способа использования/изменения контент-провайдера

Чтобы внести изменения в поставщика контента по умолчанию, например, в контакты. Если ваше приложение добавило запись о контакте, контакт останется там, даже если приложение будет удалено.

Сделать свой контент-провайдер. Но это удаляется, когда приложение удаляется.

Если я хочу изменить количество столбцов в контент-провайдере, как мне его обновить?

См. это.

ContentValues values = new ContentValues();
values.put(HabitTable.TIME); //whatever column you want to update, I dont know the name of it

...//any other values you want to update too

getContentResolver().update(HabitTable.CONTENT_URI,values,HabitTable.ID+"=?",new String[] {String.valueOf(id)}); //id is the id of the row you wan to update
person Manohar    schedule 07.06.2018