我有一个期望用户选择项目的活动,但用户可以选择单击后退按钮而不选择项目。这个“项目选择”活动是从startActivityForResult()开始的。我是否需要显式地将setResult设置为RESULT_CANCELED?
我在想两件事。首先,当实际选择项目时是否仅仅设置了结果(RESULT_OK),即,如果我没有明确设置结果,我能否依赖结果不被设置为RESULT_OK?第二,如果这还不足以依赖(未初始化的)结果,可以多次调用setResult(),第一次将结果“初始化”为RESULT_CANCELED,然后调用SetResult(RESULT_OK),然后调用SetResult(RESULT_OK)用户选择一个项目之后并在完成活动之前?
谢谢我在文档中看到,这是什么提示的问题。我所描述的情况并不是该活动“失败”。从Android API文档中不清楚,RESULT_CANCELED是默认值是一个安全的假设,也不清楚是否可以多次调用setResult。 –
文档中另一行onActivityResult方法:“如果活动明确返回该结果,没有返回任何结果或在其操作期间崩溃,resultCode将为RESULT_CANCELED。”所以如果你不返回任何结果,在用户退出活动之前用后退按钮 - 结果是RESULT_CANCELLED。 – Dirol
关于不止一次调用setResult - 它在文档中确实没有定义。所以我不会依赖这个。即使它可能适用于当前的API,也不能保证它将来可以使用。 – Dirol