تا بحال احتیاج پیدا کرده اید که اکتیویتی را اجرا کنید و بخواهید پس از پایان آن اطلاعاتی را از آن بدست بیاورید؟ فرض کنید درون برنامه خود محلی برای نوشتن متن های طولانی دارید ولی فضای موجود کم است و می خواهین هنگام کلیک بروی این محل صفحه ای جدید باز شود با فضا و امکانات بیشتر تا کاربر بتواند راحتتر متن خود را بنویسد و پس از پایان نگارش متن نوشته در صفحه جدید را درون فضای کوچک موجود نمایش داده شود.

راه حل ساده ای برای این کار وجود دارد، می توانید برای فراخوانی اکتیویتی جدید به جای استفاده از `startActivity` از تابع `startActivityForResult` استفاده کرد و درون اکتیویتی باز شده نیز قبل از فراخوانی `finish()` مقدار بازگشتی را مشخص کرد.

درون اکتیویتی اصلی برای فراخوانی اکتیویتی جدید:

``` Intent intent = new Intent(this, NoteActivity.class); startActivityForResult(intent, RESULT_CALLBACK_ID); ```

درون اکتیویتی جدید قبل از پایان کار دادن به آن:

``` Intent resultIntent = new Intent(); resultIntent.putExtra(RESULT_KEY, text.getText().toString()); setResult(Activity.RESULT_OK, resultIntent); finish(); ```

درون اکتیویتی اصلی برای دریافت مقدار بازگشت داده شده از اکتیویتی دوم و استفاده از آن:

``` @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case (RESULT_CALLBACK_ID): { if (resultCode == RESULT_OK) { String newText = data.getStringExtra(RESULT_KEY); // TODO } break; } } } ```