我有一個期望用戶選擇項目的活動,但用戶可以選擇單擊後退按鈕而不選擇項目。這個「項目選擇」活動是從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