【问题标题】:ContentProvider vs Activity内容提供者与活动
【发布时间】:2014-09-18 01:26:17
【问题描述】:

我有一个问题,目前有一群朋友正在开发一个Android App。当我们到达应用程序之间的数据处理时,我们假设选择了ContentProvider。 但是一个人告诉我们,使用 Intent 打开一个 Activity 然后在 Activity 上返回数据要好得多。setData(Bundle);方法。我不认为这是一个好的做法,但我想知道你们的想法?

使用startActivityForResult(Intent) 代替ContentProvider 真的更好吗?

非常感谢

编辑

我将为此添加一个小例子:

我们有一个场景,主应用程序必须使用来自其他应用程序的数据在主应用程序上进行一些处理,然后在主应用程序视图中显示信息

Dev建议不使用每个应用的ContentProviders,而是使用startActivityForResult()来启动其他应用处理数据,然后在每个触发的Activity的setResult(Bundle)方法上设置结果。

【问题讨论】:

  • 我想不出Activity 可以替代ContentProvider 的场景。我建议您编辑您的问题以添加更多段落,通过一个示例说明您希望如何使用每种技术来实现这一点,以便我们可以为您提供更明智的答案。

标签: java android android-contentprovider


【解决方案1】:

Dev建议不使用每个应用的ContentProviders,而是使用一个startActivityForResult()来启动其他应用处理数据,然后在每个触发的Activity的setResult(Bundle)方法上设置结果。

如果“启动其他应用程序处理数据”,您的意思是“向用户显示一个活动,允许用户与数据进行交互”,那么使用一个活动是完全合理的。如果活动背后的目的是让用户选择某些东西,那么让该活动返回一个结果也是合理的。

但是,如果“启动其他应用程序以处理数据”,您的字面意思是其他应用程序不会显示任何内容,而只是“处理数据”以返回结果,那么活动是一个荒谬的选择。 ContentProvider 是否是比Service 更好的方法,这在一定程度上取决于“处理数据”的含义以及返回的结果类型,但两者都比使用活动更可取。

【讨论】:

  • 是的,开发者建议打开Activity,不显示任何内容并处理数据......我一直认为这是一个非常糟糕的做法。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多