Как проверить, что произошло другое событие, а не ожидаемый код возврата?

Я использую startActivityForResult с намерением и конкретным REQUEST_CODE для запуска действия B из A.

В действии B пользователь может отредактировать запись в базе данных или удалить ее.

Если я нажму ту же кнопку и запущу действие, используя тот же код запроса и намерение,

как я могу проверить, решил ли пользователь сохранить отредактированную запись или удалить ее?


person George    schedule 10.12.2019    source источник
comment
Я бы использовал другой REQUEST_CODE (для этого они и предназначены), но в любом случае, когда вы указываете результат, вы можете передать Intent, и в этом намерении вы можете передать KEY, чтобы указать, что вы сделали...   -  person Martin Marconcini    schedule 10.12.2019
comment
Спасибо @MartinMarconcini. Если пользователь решает удалить запись, вместо этого я передаю намерение, содержащее логическое значение с ключом toBeDeleted. В обоих случаях resultCode == RESULT OK, но я различаю сохранение/удаление с помощью этого логического значения.   -  person George    schedule 10.12.2019
comment
Это сработало тогда?   -  person Martin Marconcini    schedule 10.12.2019
comment
@MartinMarconcini да, я считаю, что база данных правильно обновлена, потому что, если я вернусь к A и снова открою B, она снова откроется с новыми данными. Осталось обновить B, не возвращаясь к A.   -  person George    schedule 10.12.2019
comment
Хорошо, я опубликую ответ, вы можете пометить его как решенный, если это сработает (я не против).   -  person Martin Marconcini    schedule 10.12.2019


Ответы (1)


Как указано в комментариях, я бы лично использовал разные REQUEST_CODE для разных операций, но если вы действительно хотите ответить одним и тем же и указать что-то, просто передайте логическое значение (или любой другой полезный тип) в намерении ответа, которое вы может обрабатывать onActivityResult в вызывающем действии или фрагменте.

person Martin Marconcini    schedule 10.12.2019