Можно ли вызвать код выше? Получает ли он активность от
составлять или создавать новую деятельность? Если нет, как я могу получить активность
из стека?
Ав. Если вы используете этот код, в стеке создается еще один экземпляр вашего первого действия, и нет, это не нормально ..
ки. Вот ответ на основе приведенного выше примера:
Я предлагаю вам использовать startActivityForResult()
для вызова Действия 2 из Действия 1
здесь, действие 2 будет вести себя как под-действие ... вы можете установить Result и вызвать finish()
во 2-м действии, когда оно успешно завершит свою задачу ...
но перед finish()
добавьте логическое значение, например:
i.putExtra("passed2nd", true);
это будет означать, что пользователь прошел это 2-е действие
Теперь вы должны переопределить, onActivityResult()
в вашем первом занятии,
здесь вы можете проверить код запроса и получить дополнительные логические значения из второго действия.
Теперь важная часть:
в зависимости от того, является ли логическое значение истинным или нет, вы можете решить вызвать 3-е действие, используя startActivityForResult()
с другим кодом запроса,
Кроме того, в вашем onActivityResult()
вы можете снова проверить код запроса и делать то, что вы хотите, когда действие 3 заканчивается
так что теперь контроль вернется к первому действию, когда третье действие завершится успешно
Вот пример для начала.