2

I want to know how to pass data from the current Activity to a paused Activity.

Please advise.

Jason Plank
  • 2,336
  • 5
  • 31
  • 40
AndroiDBeginner
  • 3,571
  • 11
  • 40
  • 43

2 Answers2

4

Let's call the paused Activity "A" and the "current" Activity "B".

The way to have B communicate results to A is for A to call startActivityForResult() instead of startActivity(), and for B to use setResult() to provide the return value(s). A then receives those return values in onActivityResult().

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
3

in your current activity, create an intent

Intent i = new Intent(getApplicationContext(), PausedActivity.class);
i.putExtra(key, value);
startActivity(i);

then in paused activity, retrieve those values.

Bundle extras = getIntent().getExtras(); 
if(extras !=null) {
    String value = extras.getString(key);
}

if the data is complex, try http://developer.android.com/guide/appendix/faq/framework.html#3

Community
  • 1
  • 1
yanokwa
  • 1,408
  • 1
  • 12
  • 23
  • thanks for response. I think this code will be used for creating new intent of PausedActivity. I use it when finish current Activity and create new activity. It is not passing data to Paused Activity. My code is little different : Intent intent = new Intent(); intent.setClass(CurrentActivity.this, NewActivity.class); intent.putExtra("key", "value"); startActivity(intent); this.finish(); I wanna pass a value direcly from current activity to Paused Activity (previous activity) without new intent. Thanks. – AndroiDBeginner Dec 20 '09 at 08:51
  • i believe commonsware.com's answer is the best way to solve this problem. your alternative is to store the results in a database and when the paused activity is resumed, you retrieve those results. – yanokwa Dec 20 '09 at 16:25