java内容提供者与活动
我有一个问题,目前一群朋友正在开发Android应用程序。当我们谈到应用程序之间的数据处理时,我们应该选择ContentProvider
。
但是一个家伙告诉我们,使用意图打开一个活动,然后返回该活动的数据要好得多setData(Bundle)
;方法我不认为这是一个好的做法,但我想知道你们的想法
使用startActivityForResult(Intent)
而不是ContentProvider
真的更好吗
多谢各位
编辑
我将在此添加一个小示例:
我们有一个场景,主应用程序必须使用来自其他应用程序的数据在主应用程序上进行一些处理,然后在主应用程序视图中显示信息
开发人员没有使用每个应用程序的ContentProviders,而是建议使用anstartActivityForResult()
启动其他应用程序来处理数据,然后在触发的每个活动的setResult(Bundle)
方法上设置结果
# 1 楼答案
如果“启动其他应用程序来处理数据”,你的意思是“向用户显示活动,允许用户与数据交互”,那么使用活动是完全合理的。让该活动返回结果也是合理的,前提是该活动背后的目的是让用户选择某个内容
然而,如果“启动其他应用程序以处理数据”,你的字面意思是,其他应用程序不会显示任何内容,而只是“处理数据”以返回结果,那么一个活动就是一个荒谬的选择。一个
ContentProvider
是否比一个Service
更好的方法在一定程度上取决于“流程数据”的含义和返回的结果类型,但两者都比使用活动更可取