2014-11-28 3 views

ответ

1

Запуск другой деятельности не обязательно должен быть в одну сторону. Вы также можете начать другое действие и получить результат. Для получения результата звоните startActivityForResult() (вместо startActivity()).

Например, приложение может запускать приложение для камеры и получать полученную фотографию в результате. Или вы можете запустить приложение «Люди», чтобы пользователь мог выбрать контакт, и в результате вы получите данные о контакте.

Конечно, действие, которое отвечает, должно быть спроектировано так, чтобы возвращать результат. Когда это произойдет, он отправляет результат как другой объект Intent. Ваша активность получает его в обратном вызове onActivityResult().

Подробнее here.

1

Если вы запустите приложение с помощью startActivityForResult, вы получите в onActivityResult в своем приложении, когда он закроется, то есть нормальный поток.

Но если вы хотите всегда запускать приложение, когда другое закрывается, это можно сделать с помощью службы, но я бы не рекомендовал это делать, поскольку это плохая практика.

+0

Если приложение не возвращает никакого результата, я могу использовать 'onActivityResult', чтобы узнать, что приложение закрыто ?! – Jessica

+1

Да, вы получите RESULT_CANCELED, а Intent данных будет null. –

Смежные вопросы