Android ContentProvider和Google IO Rest Talk

Kop*_*ppo 16 io rest android android-contentprovider

对所有人来说

如果您在构建Android REST应用程序时观看Google IO会话,则无论您是否需要共享数据,他们都建议使用所有三种设计模式来使用内容提供商.

如果您查看http://developer.android.com/reference/android/content/ContentProvider.html上的Content Provider类文档,他们表示如果您计划与其他应用程序共享数据,则只需使用内容提供程序.

我的应用程序不需要与其他应用程序共享任何数据,因此使用内容提供商过度杀伤?如果是这样,为什么Google IO REST视频意味着它应该在所有场景中使用?

- =更新= -

会谈在这里https://dl.google.com/googleio/2010/android-developing-RESTful-android-apps.pdf.

Dav*_*unt 16

这个问题没有真正对或错的答案,但由于以下原因,我强烈要求使用内容提供者阵营.

您可以为数据获得定义明确,易于使用的CRUD界面.一旦您编写了Contract和Provider方法,开始检索数据只需几行.当您以后开始从事该项目,或者您聘请其他开发人员时,您将在几分钟内完成工作.

Android框架中的许多类都旨在与内容提供商合作.特别是,CursorLoaders很棒,你需要做大量工作才能自己模拟它们的功能.除了编写所有自己的数据检索代码和异步任务外,还可以好好管理活动中的游标生命周期.有各种细微差别和事情要照顾.这需要一段时间.

经常更新或插入行?通过ContentProvider向ListViews和其他Cursor消费者通知更改非常容易.如果您没有使用ContentProvider,则必须编写自己的观察者并自行管理.

想要集成快速搜索框,还是对ListView应用一些强大的过滤功能?同样,如果您使用游标和内容提供者,那么这很简单,如果您不使用游戏,则需要完成大量工作.

如果您将来决定将数据打开到其他应用程序,那么您最终还是会编写一个ContentProvider.请记住,您仍然可以使用ContentProviders而不允许其他应用修改您的数据.

我可以(并且可能)进一步扩展这篇文章,但希望你能得到这个想法.谷歌使用像iosched这样的优秀应用程序提供商是有原因的.