0

在使用 startActivityForResult() 启动的某些活动上调用 setResult() 和 finish() 时,我看到不一致的行为。从这里的其他问题来看,似乎有多种可能导致意外行为的原因。鉴于活动可能会为结果本身启动活动,我在调试时需要查看哪些变量以全面了解在为结果启动活动并将其发回的过程中发生的情况?

具体来说,我想知道如何查看:

  • 当结果返回到起始活动时将如何处理
  • 调用完成()时将发送结果的位置(以及是否)
  • 当前设置的结果是什么

我已经在看:

mResultCode
mResultData
mParent

但他们自己没有提供足够的信息。我想要我的应用程序结果机制的整个状态。

4

1 回答 1

1

请求代码 ...

当您调用startActivityForResult()时,您会提供一个请求代码。请求代码允许您将特定活动结果与特定启动请求相匹配。具体来说,在onActivityResult()中,您将收到一个允许您进行比较的请求代码。

结果代码...

结果代码只是从启动的活动到启动活动的粗粒度消息传递的一种方式。也就是说,启动的活动可以通过调用setResult(int)设置结果代码,该代码在onActivityResult()中返回给启动活动。同样,这通常用于执行粗粒度的消息传递,如成功或失败。

结果数据...

最后,要传回更细粒度的数据,请使用setResult(int, Intent) 的变体,它同时接受结果代码和意图。当您构建意图时,添加您希望传递回起始活动的任何额外内容。

于 2012-06-27T19:48:59.143 回答