gpt4 book ai didi

android - 与普通的 SQLIte 存储相比,使用 ContentProvider 有什么优势?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:08 25 4
gpt4 key购买 nike

我想在多个应用程序之间共享数据,而不是使用 ContentResolver->ContentProvider 机制,我可以只定义一个客户端库,它与执行 SQLite 数据库操作的进程对话,对吗?

ContentProvider 带来了什么,而我们不能通过让 Process 公开数据来实现?

最佳答案

你可以找到答案Exact Difference between “Content-Provider” and “SQLite Database” .

但我想解释一下..

What does the ContentProvider brings in here which we cannot achieve by have a Process expose the data?

您应该注意一个特殊的 SQLite 限制,即 SQLite 仅供单用户使用。这真正意味着您将需要保护您的数据库不被多个线程同时访问。这在内容提供者中通常不是问题,因为它们几乎总是具有单线程实现。

此外,为您的数据提供额外的抽象级别以使其更容易在内部进行更改是一种很好的做法。如果您决定稍后更改底层数据库结构怎么办?如果您使用 ContentProvider,您可以在其中包含所有结构更改,如果您不使用它,您将被迫更改受结构更改影响的所有代码区域。此外,能够重复使用相同的标准 API 来访问数据,而不是让您的代码乱七八糟地访问数据库,这很好。

关于android - 与普通的 SQLIte 存储相比,使用 ContentProvider 有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com