我正在阅读来自 android 的内容提供者的官方文档,我看到了这个:
Decide if you need a content provider.
You need to build a content provider if you want to provide one or more of the following features:
- You want to offer complex data or files to other applications.
- You want to allow users to copy complex data from your app into other apps.
- You want to provide custom search suggestions using the search framework.
- You don't need a provider to use an SQLite database if the use is entirely within your own application.
我正在开发一个应用程序,当位置通过 IntentService 发生变化时,它会在后台同步数据。
我所看到的是,使用 ContentProvider 时,您可以观察到我真正想要的数据更改,而用户不会注意到它。它在 IntentService 中发生变化,MainActivity 观察到这种变化,并在收到通知时布局内容发生变化
使用 ContentProvider 是不是一个好主意,尽管他们甚至没有提到这一点?
谢谢
最佳答案
就我个人而言,在过去一年半的时间里,我一直在我的所有项目中使用 ContentProvider。它们提供良好的、独立于数据库的数据抽象来访问您的数据。它们非常灵活,我什至有一个游戏项目,其中一个 URI 指向 SharedPreference,而所有其他 URI 都用于访问数据库表。 ContentProvider 还允许您使用已经构建的框架基础设施,例如 CursorLoaders。从接口(interface)和抽象类实现您自己的接口(interface)和抽象类并不难,但它可能很耗时且容易出错,能够仅利用已经尝试和测试的工作是一个很大的优势。
顺便说一下,我记得大约 2 周前在 google+ 上的一篇帖子中提出了同样的问题,Cyril Mottier 给出了非常好的答案。可以看一下here .
关于android - 我应该使用内容提供商吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15056506/