[英]Android. Content provider or Database?
如果使用ContentProvider
或Database
更好,我在这个问题上有点困惑。 或者,如果我不想与其他应用程序共享任何数据,则没有任何区别。
如果我理解正确,内容提供商基于SQLite
并且它们的内容也可能只能访问我的应用程序。
你能解释一下吗?
非常感谢你,
穆尔
当然,提供商是一个解决方案的有价值的问题,特别是对于跨应用程序数据发布。 例如,您需要使用内容提供商向快速搜索框提供搜索建议。
但是,对于应用程序内部使用,我不是粉丝。 成本(例如,灵活性降低,额外开销)超过了恕我直言的好处。
如果您确实实现了内容提供程序,请记住默认情况下其他应用程序可以访问它们。 您需要在<provider>
元素中包含android:exported="false"
,以使其对您的应用程序保密。
使用内容提供商将为您提供更加模块化的设计,如果您将来希望从其他应用程序获取数据,则可以让您的生活更轻松。 如果您确定只需要从一个应用程序获取数据,那么您也可以直接在数据库上运行。
您应该注意一个特定的SQLite限制,那就是SQLite只是单用户。 这实际上意味着您需要保护您的数据库不会同时从多个线程访问。 这在内容提供者中通常不是问题,因为它们几乎总是具有单线程实现。
使用内容提供商的原因在这里 。
综上所述:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.