Android ContentProvider 和 Google IO Rest Talk

标签 android rest io android-contentprovider

致各位

如果您观看有关构建 Android REST 应用程序的 Google IO session ,他们会建议在所有三种设计模式中使用内容提供程序,无论您是否需要共享数据。

如果您查看位于 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 .

最佳答案

这个问题没有真正正确或错误的答案,但出于以下原因,我强烈支持使用内容提供商

您将获得一个定义明确、易于使用的数据 CRUD 界面。一旦您编写了 Contract 和您的 Provider 方法,只需几行代码即可开始检索数据。当您稍后开始该项目时,或者您聘请其他开发人员时,您将在几分钟内掌握最新进展。

Android 框架中的许多类都是为与内容提供者一起工作而设计的。特别是,CursorLoaders 非常出色,您必须做大量工作才能自己模拟它们的功能。除了编写您自己的所有数据检索代码和异步任务之外,祝您在 Activity 中管理游标生命周期好运。有各种细微差别和需要注意的事情。这需要一段时间

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

想要集成快速搜索框,或者对 ListView 应用一些强大的过滤功能?同样,如果您使用 Cursors 和 ContentProviders,这很简单,如果您不使用,则需要大量工作。

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

我可以(并且可能)进一步扩展这篇文章,但希望你能明白这一点。 Google 在 iosched 等出色应用中使用提供商是有原因的。

关于Android ContentProvider 和 Google IO Rest Talk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6701270/

相关文章:

java - 为什么 BaseAdapter 的自定义子类只需要实现 Adapter 接口(interface)中的一些抽象方法?

jquery - 调用与 jQuery 同步的基于 REST 的服务

web-services - 在 drupal 7 中使用 View 服务选择语言

java - 为什么 java.io.FileSystem 是包私有(private)的?

c++ - 无需检查即可将标准输入快速读入缓冲区

带滚动条的Android ImageView

android - 以编程方式启用蓝牙网络共享android

android - react native 资源问题

rest - 解析 Web API 路由中的自定义格式 DateTime 值

java - java读取文件时如何转义以特殊字符开头的行