Нужно ли явно указыватьResult на RESULT_CANCELED?

У меня есть активность, которая ожидает, что пользователь будет выбирать элемент, но вместо этого пользователь может выбрать кнопку «Назад» без выбора элемента. Эта операция выбора элемента начинается с началаActivityForResult ().

Мне было интересно две вещи. Во-первых, достаточно ли только setResult (RESULT_OK), когда элемент действительно выбран, т. Е. Могу ли я полагаться на результат, который не был установлен на RESULT_OK, если я не устанавливаю его явно?

Во-вторых, если этого недостаточно для того, чтобы полагаться на результат (неинициализированный), нормально ли вызывать setResult () несколько раз, первый раз «инициализируя» результат RESULT_CANCELED, а затем вызывая SetResult (RESULT_OK) после того, как пользователь выбирает Предмет и до завершения деятельности?

Из документации :

Если по какой-либо причине (например, сбой) происходит дочернее действие, родительская активность получит результат с кодом RESULT_CANCELED .

Таким образом, результат уже RESULT_CANCELED , если вы явно не указали другой код. Когда пользователь выходит из вашего приложения с помощью кнопки «Назад» – вы также получаете RESULT_CANCELED .

Вы можете использовать setResult(RESULT_CANCELED) для каждого Activity и finish() вызова finish() .

В переопределенном OnActivityResult выполните, как я уже упоминал, если код результата отменен.