I might have misunderstood how intents are supposed to be used, so I might be asking the wrong thing here. If that\'s the case, please help me get on the right track with th
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)
You can do the following to add information into the intent bundle:
Intent i = new Intent(MessageService.this, ViewMessageActivity.class);
i.putExtra("message", "value");
startActivity(i);
Then in the activity you can retrieve like this:
Bundle extras = getIntent().getExtras();
String message = extras.getString("message");
Starting the activity from your service each time a new message is received might not be what you want. For instance, if you are viewing a different activity you will be interrupted by the new message.
You can use sendBroadcast(intent) along with a BroadcastReceiver to notify an activity that a new message has been received.