Я создал поставщика контента для своего приложения. Я хотел знать, где именно находится местоположение или путь к базе данных, созданной в контент-провайдере. Удаляются ли при удалении приложения и поставщики контента? Если я хочу изменить количество столбцов в контент-провайдере, как мне его обновить?
Контент-провайдер: где именно он создается и хранится?
Ответы (2)
Контент-провайдер — это не база данных, а компонент, который предлагает некоторые преимущества, такие как возможность поиска контента с основного устройства. БД не зависит строго от поставщика контента. Что делает контент-провайдер, так это предоставляет интерфейс к базе данных с помощью Uri и авторитета. Итак, чтобы ответить на ваш вопрос, да, если вы отмените свое приложение, вы также отмените БД, потому что отмена приложения и даже класс поставщиков контента будут отменены
Быстрый поиск по 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