在android中使用Content Provider而不是sqlite数据库有什么好处?

时间:2016-07-25 09:28:36

标签: android sqlite android-contentprovider android-syncadapter

我已经读过内容提供商用于与其他应用程序共享数据。

在我的应用程序中,我没有使用内容提供程序,因为我不需要与其他应用程序共享我的数据。所以我一个人使用sqlite数据库。对于底层数据集更改,我使用loadermanager和forceload内容观察器进行即时加载。

这是一种不好的做法吗?所有应用都使用内容提供商吗?此外,我将开发新的应用程序,并且我将使用syncadapter,我应该采用与之前相同的方法,还是需要使用内容提供程序?(记住:在这种情况下我也不想与其他应用分享我的数据)

2 个答案:

答案 0 :(得分:0)

如果您不想与其他应用程序共享数据,则并不总是需要内容提供程序,但除了内容提供程序非常有用之外,现在您不需要使用自己的加载程序。除此之外,它还有很多优点,你可以从here阅读不同人的观点。

但在我看来,如果您制作的应用程序可能会随着时间的推移而发展,那么您应该使用Content Provider,因为它可以帮助您在当时完成任务。

答案 1 :(得分:0)

documentation说:

  

如果您不打算与其他应用程序共享数据,则无需开发自己的提供商。但是,您需要自己的提供商在您自己的应用程序中提供自定义搜索建议。

默认的游标加载器实现需要内容提供程序是一个设计错误。但是,您可以轻松编写your own cursor loader that does not need a content provider

同步适配器需要内容提供程序是一个设计错误。但是,即使是Android文档本身也会显示如何编写a stub content provider that does not actually do anything