Q:

Sending data between two Activities using Explicit Intents

I have two Activities - Activity A, and Activity B. The user is presented with Activity A on opening the app.
When you click a button on Activity A, it opens Activity B. 
In Activity B, the user is prompted to add some text into an EditText field, which is stored in a TextView object.
When you click a button on Activity B, it redirects you to Activity A, and passes the data stored in the TextView object to Activity A to display on the screen.
My assumed logic:
Activity A constructs a new Intent and passes in Activity B.
Activity A calls startActivityForResult(intent).
Activity B then calls getIntent(), but does nothing with it, because there is nothing required(?)
In onClick() method, Activity B creates a new Intent, passing in Activity A. Activity B puts its results in the new Intent (i.e. using intent.putExtra() )
onActivityResult() in Activity A is called.
I'm wondering, if this is the right logic?

A:

Yes, you're doing things exactly how you're expected to. It may seem a little odd to be passing data through intents, but that's how Android was designed. Have in mind that activities may live in different processes, so the system serializes and deserializes the data in order to perform inter-process communication. The intent mechanism is the standard way of exchanging information across them and that's why intents only hold primitive data, Parcelables and Serializables. That being said, a piece of data exchanged by an intent is never the same instance on both sides, but an actual copy of the original data.

