【发布时间】:2018-06-07 20:40:17
【问题描述】:
我为我的应用创建了一个内容提供程序。我想知道在内容提供者中创建的数据库的确切位置或路径在哪里。卸载应用程序是否也会删除内容提供者?如果我想更改内容提供程序中的列数,我应该如何升级它?
【问题讨论】:
标签: android android-contentprovider
我为我的应用创建了一个内容提供程序。我想知道在内容提供者中创建的数据库的确切位置或路径在哪里。卸载应用程序是否也会删除内容提供者?如果我想更改内容提供程序中的列数,我应该如何升级它?
【问题讨论】:
标签: android android-contentprovider
内容提供者不是数据库,而是提供一些优势的组件,例如使内容可从主设备搜索。 数据库并不严格依赖于内容提供者。内容提供者所做的是通过 Uri 和权限为数据库提供接口。 所以回答你的问题是,如果你取消你的应用程序,你也将取消数据库,因为取消应用程序,甚至内容提供程序类都会被取消
【讨论】:
快速搜索 SO:
在内容提供程序中创建的数据库的位置或路径到底在哪里
见this
“内容提供者如何在幕后实际存储其数据取决于其设计者。”
卸载应用程序是否也会删除内容提供者?
见this
有两种使用/更改 Content Provider 的方法
更改默认内容提供者,例如联系人。如果您的应用添加了联系人条目,即使应用被删除,该联系人仍然存在
制作您自己的内容提供商。但是,当应用程序被卸载时,它会被删除。
如果我想更改内容提供程序中的列数,我应该如何升级它?
见this
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
【讨论】: