我有一项活动,希望用户选择一个项目,但用户可以选择单击后退按钮而不选择项目。此“项目选择”活动以startActivityForResult()开始。
我想知道两件事。首先,当实际选择项目时,只有setResult(RESULT_OK)就足够了,即,如果我没有明确地设置它,我可以依赖结果没有被设置为RESULT_OK吗?
其次,如果这不足以依赖(未初始化的)结果,可以多次调用setResult(),第一次将结果“初始化”为RESULT_CANCELED,然后再调用SetResult(RESULT_OK)用户在完成活动之前选择一个项目?
答案 0 :(得分:10)
如果儿童活动由于任何原因(例如崩溃)而失败,则 父活动将收到代码的结果
RESULT_CANCELED
。
所以结果已经是RESULT_CANCELED
,如果
您没有明确指定其他代码。当用户退出你的
应用程序通过“后退”按钮 - 您也会收到RESULT_CANCELED
。
答案 1 :(得分:1)
您可以在setResult(RESULT_CANCELED)
上使用Activity
并致电finish()
。
在覆盖的OnActivityResult
中,如我所述,是否取消了结果代码。