为什么startActivityForResult使用Intent来传递数据而不是Bundle?

时间:2012-06-11 14:18:15

标签: android design-patterns

documentation可以看出,启动Activity以便传回数据的方式是这样的:

  1. 使用通话Activity启动startActivityForResult(Intent intent, int requestCode)
  2. 在已启动的Activity电话setResult(int resultCode, Intent data)
  3. 在通话onActivityResult(int, int, Intent)上实施Activity
  4. 问题是:在这种情况下使用Intent是一种模式或设计考虑因素,因为其他地方的活动间数据都表示为Bundle

2 个答案:

答案 0 :(得分:0)

通过传回一个意图而不仅仅是一个包,调用者可以收到一些东西,可以直接启动另一个活动,服务等。虽然在所有(甚至大多数)情况下可能不需要,但它仍然允许捆绑将在意图的附加内容中传递。

答案 1 :(得分:0)

在我得到更详细的答案之前,我唯一可以想到的是,这是专门为了让被叫活动增加对结果行动的控制而做的。

我能看到以这种方式完成更好的唯一场景是,如果被调用的Activity位于另一个沙箱中,并且可以使用显式Class引用构建Intent,而不是通过使用Action将结果调用锁定为指定的显式Activity