Подтвердить что ты не робот

Синхронная и асинхронная деятельность

Может ли кто-нибудь помочь мне понять синхронные и асинхронные действия в Android?

Что конкретно подразумевается под синхронной и асинхронной активностью в Android?

StartActivity, StartSubActivity и StartAcivityForResult запускают операцию синхронно или асинхронно или могут вести себя в обоих направлениях?

Пожалуйста, объясните, как я прошел много статей, но не смог найти должного объяснения по этому поводу.

4b9b3361

Ответ 1

Прежде всего, на Android может работать только одно действие, так что вы никогда не будете одновременно запускать два действия. Используйте startActivity(), когда вы хотите "стрелять и забывать", то есть вы хотите запустить мероприятие, но не ожидаете, что оно вернет значение вашей активности. В этом случае начнется новое действие, и ваша деятельность будет приостановлена; вы можете в конечном итоге восстановить контроль, как только пользователь вернется к вашей активности.

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

В обоих случаях, поскольку вызывающая активность и вызываемая активность находятся в одной и той же задаче, она "синхронна" в определенном смысле (хотя, я думаю, использование терминов "синхронный" и "асинхронный" может быть запутанным в этом контексте), Вызывающая активность не будет отображаться на экране до тех пор, пока вызываемая деятельность не завершится.

Полезное чтение, чтобы узнать больше: * http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html

- Бруно Оливейра (Отношения с разработчиками Android, Google)