所有人

如果您观看有关构建Android REST应用程序的Google IO session ,则他们建议在所有三种设计模式下都使用Content Provider,无论是否需要共享数据。

如果您查看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框架中的许多类都旨在与内容提供者一起使用。特别是,CursorLoader非常出色,您必须做大量工作才能自己模拟它们的功能。除了编写所有自己的数据检索代码和异步任务外,还可以管理 Activity 中的游标生命周期。有许多细微差别和需要注意的事情。这需要一段时间。

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

想要集成快速搜索框,还是对ListView进行一些强大的过滤?同样,如果您使用的是Cursors和ContentProviders,那么很简单;如果您不使用它,则会进行大量的工作。

如果将来您决定将数据开放给其他应用程序,则无论如何都将最终编写一个ContentProvider。请记住,您仍然可以在不允许其他应用程序修改数据的情况下使用ContentProviders。

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

10-07 19:22
查看更多