I'm not sure why you want to maintain the stack yourself, as android already keeps a stack of the activities: starting an activity pushes one on the stack, going back pops it from the stack.
I suppose deciding in activity A what will be your next activity b, C or D should do it. But then from your description I cannot tell if your use case allows for this decision.
about saving your activities state: check out
Recreating an Activity