2012-06-11 85 views
0

你可以从documentation的方式看到启动一个Activity有传回的数据,像这样:为什么startActivityForResult使用Intent传递数据而不是Bundle?

  1. 启动Activity使用呼叫startActivityForResult(Intent intent, int requestCode)
  2. 在开始的Activity呼叫setResult(int resultCode, Intent data)
  3. 执行onActivityResult(int, int, Intent)致电Activity

的问题是:是他们在这种情况下其他地方一样,活动间数据表示为Bundle使用Intent图案或设计考虑?

+0

非常好抓住:) –

回答

0

直到我获得更详细的解答,我能想到的唯一的事情是,这是专门做给被叫活动增加了所产生的动作控制。

唯一的方案,我可以看到它会更好,这样做是如果被叫活动是另一个沙箱中,并可以使用一个明确的Class参考构造意图,而不是通过使用Action的锁定导致呼叫到指定的显式Activity

0

通过传回的意图,而不是仅仅是一个捆绑,主叫方可以接受的东西,用以直接启动另一个活动,服务等。虽然这可能无法在所有(甚至大部分)的情况下是必需的,它仍然允许一个捆绑要在意图的额外交付。

+0

因为除了明确的'意图'可以通过基本的类型表达/构造,似乎这可能已经明确地完成将控制流放置在被称为“活动”的肩膀上呼叫者。这似乎很奇怪,这没有一个很好的理由......? – Graeme

相关问题