in some part of my application there is a structure of activities like this:
Activity A
is my home activity where I come back after each process or flow.
Activity B
is a simple confirmation activity.
Activity C
is another confirmation activity.
Activity D
does some process and finally it gets back the result to my home activity (Activity A
).
Activity B
and C
:
finish()
and does nothing.finish()
I was thinking about using startActivityForResult()
but I have never used it to pass a result through multiple activities..
I also was thinking to pass a handler
(created in Activity A
) which calls some method on Activity A
and is executed on Activity D
...
How could I implement it?
You might like to make use of the intent flag FLAG_ACTIVITY_FORWARD_RESULT as described in Intent
when starting activities B and C
public static final int FLAG_ACTIVITY_FORWARD_RESULT
Since: API Level 1
If set and this intent is being used to launch a new activity from an existing one, then the reply target of the existing activity will be transfered to the new activity. This way the new activity can call
setResult(int)
and have that result sent back to the reply target of the original activity.
That way A should pick up any data sent back in the extras sent back from D