В моем приложении определенный код результата используется для завершения всего приложения, когда это необходимо (т.е. для завершения всех действий, принадлежащих моему приложению в стек активности). Все действия начинаются с startActivityForResult(). Код результата записывается в onActivityResult() и оттуда переходит к следующему действию в стеке действия. Это сводится к каждой самой операции, когда используется определенный код результата.onActivityResult() не вызывается, когда такая же активность, как и завершение. Активность достигается в стеке
Работает отлично .. во всех случаях, за исключением одного:
Рассмотрим стек активность, состоящую из A -> B -> A. Последние А (прямо в последовательности) начинает процедуру, финишировав себя и установку код результата для завершения других видов деятельности. После того, как B закончил и передал код результата в первый A (слева A в последовательности), получается, что onActivityResult() не вызывается.
Можно отметить, что onDestroy() еще не был вызван для самого верхнего A в стеке (справа A в последовательности), когда достигнут первый A.
Как исправить или обойти эту проблему?
У вас есть что-нибудь, установленное в 'android: launchMode' для активности A или B в' AndroidManifest.xml'? – inazaruk
Нет. Я пытался использовать singleTop один раз, но это, естественно, не помогло. – Vanja
Все работает отлично в моем местном примере. Вероятно, что-то вам не хватает. Я загрузил свой пример кода здесь: https://github.com/inazaruk/examples/tree/master/ActivityResult. Посмотрите, поможет ли это вам. – inazaruk