这些天我回去查看有关ContentProvider
的内容,但我发现了一些问题。我只能使用ContentProvider
吗?我看到很多代码,ContentProver
使用Sqlite
}或SharedPreferences
。这意味着我不仅可以使用ContentProvider
来恢复,查询和更新我的数据。还能说出一些想法吗?
答案 0 :(得分:1)
ContentProvider
是基础数据源的抽象。您不一定需要使用SQLite(虽然它可能是最常用的),但ContentProvider
将需要使用某些东西来存储实际数据。
答案 1 :(得分:0)
内容提供商
内容提供商管理对结构化数据集的访问。它们封装了数据,并提供了定义数据安全性的机制。内容提供程序是将一个进程中的数据与另一个进程中运行的代码连接起来的标准接口。
如果要访问内容提供程序中的数据,可以使用应用程序上下文中的ContentResolver对象作为客户端与提供程序进行通信。 ContentResolver对象与提供程序对象进行通信,提供程序对象是实现ContentProvider的类的实例。提供者对象从客户端接收数据请求,执行请求的操作,并返回结果。
如果您不打算与其他应用程序共享数据,则无需开发自己的提供程序。但是,您需要自己的提供商在您自己的应用程序中提供自定义搜索建议。如果要将复杂数据或文件从应用程序复制并粘贴到其他应用程序,还需要自己的提供程序。
Android本身包括管理音频,视频,图像和个人联系信息等数据的内容提供商。您可以在android.provider包的参考文档中看到它们中的一些。有一些限制,任何Android应用程序都可以访问这些提供程序。
因此,它与SQLite或SharedPreferences并不完全相关。