Все зависит от того, как вы перемещаетесь между действиями.
Когда вы нажимаете назад или делаете finish()
, вы уничтожаете свою деятельность. Я верю, что в этом случае вы делаете finish()
на b2 и возвращаетесь на b1.
Думайте о действиях как о стеке, который содержит экземпляров ваших действий. В вашем стеке может быть несколько экземпляров одного и того же действия.
Когда вы находитесь на a и переходите на b1, ваш стек остается таким:
b1
a
Когда вы переходите на b2, ваш стек становится таким
b2
b1
a
Тогда, если вы сделаете еще один startActivity()
для b1, вы получите
b1
b2
b1
a
Однако, если вы сделаете finish()
или нажмете назад, вы фактически уничтожите b2 и вернетесь к первому экземпляру, который вы получили от b1. Помните: в стеке есть экземпляры действий, которые могут содержать разные данные.