How do I create an android Intent that carries data?

Use the Intent bundle to add extra information, like so:

Intent i = new Intent(MessageService.this, ViewMessageActivity.class);
i.putExtra("name", "value");

And on the receiving side:

String extra = i.getStringExtra("name");

Or, to get all the extras as a bundle, independently of the type:

Bundle b = i.getExtras();

There are various signatures for the putExtra() method and various methods to get the data depending on its type. You can see more here: Intent, putExtra.

EDIT: To pass on an object it must implement Parcelable or Serializable, so you can use one of the following signatures:

putExtra(String name, Serializable value)

putExtra(String name, Parcelable value)

Leave a Comment