¿Cómo agregar sintéticamente actividad a la stack trasera antes de comenzar otra?

Digamos que estoy en la actividad A. Quiero iniciar la actividad B, pero quiero que el usuario pase a la actividad C si presiona la actividad B.

Entonces, aunque el usuario vea A -> B, quiero que sea A -> C -> B.

Sé que podría usar TaskStackBuilder y crear sintéticamente la stack ABC. Sin embargo, a veces A no es simplemente una actividad; podría haber alguna navigation previa que el usuario hizo que no quiero perder y que sería demasiado problema para recrear sintéticamente con TaskStackBuilder .

¿Hay alguna manera de usar TaskStackBuilder mantener la stack actual? ¿O hay alguna otra forma de agregar sintéticamente una actividad a la stack posterior antes de comenzar otra?