我是否需要将setResult显式设置为RESULT_CANCELED?

时间:2011-07-03 18:11:47

标签: android android-activity

我有一项活动,希望用户选择一个项目,但用户可以选择单击后退按钮而不选择项目。此“项目选择”活动以startActivityForResult()开始。

我想知道两件事。首先,当实际选择项目时,只有setResult(RESULT_OK)就足够了,即,如果我没有明确地设置它,我可以依赖结果没有被设置为RESULT_OK吗?

其次,如果这不足以依赖(未初始化的)结果,可以多次调用setResult(),第一次将结果“初始化”为RESULT_CANCELED,然后再调用SetResult(RESULT_OK)用户在完成活动之前选择一个项目?

2 个答案:

答案 0 :(得分:10)

来自documentation

  

如果儿童活动由于任何原因(例如崩溃)而失败,则   父活动将收到代码的结果   RESULT_CANCELED

所以结果已经是RESULT_CANCELED,如果 您没有明确指定其他代码。当用户退出你的 应用程序通过“后退”按钮 - 您也会收到RESULT_CANCELED

答案 1 :(得分:1)

您可以在setResult(RESULT_CANCELED)上使用Activity并致电finish()

在覆盖的OnActivityResult中,如我所述,是否取消了结果代码。