روشی دیگر برای بستن (destroy کردن) و اجرای دوباره یک Activity (در اصطلاح، restart یا refresh کردن Activity)، با استفاده از روش onActivityResult ، در برنامه نویسی اندروید
برای restart کردن یک Activity ، ابتدا در میان کدهای آن Activity ، روش onActivityResult را به صورت زیر کدنویسی می کنیم (Override می کنیم) :
یعنی به عنوان مثال، موقعیت آن در Activity باید مشابه کد زیر باشد :
سپس هر زمان که بخواهیم Activity را restart کنیم، باید یک سری کد اجرا شود، اما چگونگی کدها به این بستگی دارد که در چه محلی قصد داریم آنها را اجرا کنیم. برای محل کدها، دو حالت را در نظر می گیریم :
1- کدها در میان کدهای همان Activity که می خواهیم restart شود (مثلا با اشاره بر روی یک دکمه در خود Activity ، باعث restart شدن آن شویم).
2- کدها در میان کدهای کلاسی (Class) غیر از Activity مورد نظر که می خواهیم restart شود. این کلاس (Class) می تواند یک Activity دیگر، یک کلاس (Class) که خودمان تعریف کرده ایم، یک سرویس (Service) یا ... باشد.
1- کدها در میان کدهای همان Activity که می خواهیم restart شود :
در این حالت، کدهای زیر را در Activity اجرا می کنیم (برای restart شدن) :
در کد بالا، نام Activity را برابر MyActivity در نظر گرفته ایم.
2- کدها در میان کدهای کلاسی (Class) غیر از Activity مورد نظر که می خواهیم restart شود :
در این حالت، کدهای زیر را در کلاس (Class) مورد نظر اجرا می کنیم (برای restart شدن) :
دقت شود که ابتدا Context و Intent مربوط به Activity (همان Activity که می خواهیم restart شود) را به آن کلاس ارسال کرده و سپس روش startActivityForResult را به شکل بالا اجرا می کنیم. در کد بالا، myContext و myIntent ، همان Context و Intent مربوط به Activity هستند که آن دو را به کلاس ارسال کرده ایم. در این حالت، فرض کرده ایم که Activity قبلا اجرا شده (یعنی یا اکنون آن را می بینیم یا در پس زمینه است).
در صورت نیاز، برای مشاهده چگونگی ساخت یک کلاس (class) جدید با قابلیت دریافت Context مربوط به Activity ،