Pza*_*nno 100 android android-contentprovider
我了解内容提供商允许在应用程序之间公开共享数据.但是,我想知道是否有人想让内容提供商只在你自己的应用程序中使用.这样做有什么好处吗?有什么缺点?
在过去,我刚刚实现了SQliteOpenHelper来访问我的数据库中的数据,但我正在考虑创建一个Content Provider.我觉得请求数据的URI方法简洁明了.另一方面,仅仅为我的应用程序使用内容提供程序是多余的(因为在其中我将有一个SQliteOpenHelper类)和更多的工作比我需要的?
Pau*_*ond 116
我认为,ContentProvider
即使你不打算将它公之于众,也绝对是一个好主意.
最好为数据提供额外的抽象级别,以便更容易在内部进行更改.如果您决定稍后更改基础数据库结构,该怎么办?如果使用a ContentProvider
,则可以包含其中的所有结构更改,就像您不使用它一样,您将被迫更改受结构更改影响的代码的所有区域.此外,能够重复使用相同的标准API来访问数据,而不是通过对数据库的低级访问来乱丢代码,这是很好的.
此外,您可能希望将来公开您的数据.如果您没有ContentProvider
预先使用,那么在以后进行改装将会更加困难.
然后,还有Android的其他部分ContentProvider
需要/推荐,例如在使用SyncAdapter
s时,如果你想要一个涉及数据访问的App Widget.
总而言之,编写预先版本所涉及的开销非常小ContentProvider
(一旦你学会了API,这无论如何都是个好主意)所以这样做是有意义的,即使对于私有数据也是如此.
Cri*_*ian 55
如果您不打算共享数据,请不要考虑内容提供商.它们功能强大但很难编写,如果要在内部使用它们,实现它们将是愚蠢的.
但是,我想知道是否有人想让内容提供商只在你自己的应用程序中使用.
当然......例如,对于我写的旧TODO列表应用程序,我必须编写内容提供程序以允许其他应用程序检索和访问任务状态.这是要求的一部分,但不仅仅是它有意义,使应用程序更好.
看看MOTODEV Studio for Eclipse.它是一个扩展Eclipse的开发环境.他们有一个工具,您可以自动为数据库生成内容提供程序.如果内容提供商更容易访问您的数据,并且它对性能没有显着影响,请继续使用它.在大多数情况下,情况就是这样.
简而言之,Content Providers
有助于有效地管理数据。我建议出于以下原因使用它们。
SyncAdapter
。例如,当数据库中的值与ContentProviders一起使用时,您可以自动刷新列表CursorLoader
。没有ContentProviders,您必须自己实现很多类似的功能。因此,即使您现在不需要这些功能中的任何一个,您将来也可能需要它们,这很有益,可以加倍努力并立即实施它们。
归档时间: |
|
查看次数: |
29381 次 |
最近记录: |