Нужно ли явно задавать значение RESULT_CANCELED? - PullRequest
8 голосов
/ 03 июля 2011

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

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

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

Ответы [ 2 ]

10 голосов
/ 03 июля 2011

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

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

Таким образом, результат уже RESULT_CANCELED, если Вы явно не указываете другой код. Когда пользователь выходит из вашего приложение через кнопку "назад" - вы также получаете RESULT_CANCELED.

1 голос
/ 14 июля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...