میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

Lifecycle چرخه ی حیات Activity در اندروید

یک Activity می تواند بسته به نحوه ی تعاملی که کاربر با آن دارد، در وضعیت های متفاوت قرار داشته باشد. وضعیت های Lifecycle چرخه ی حیات Activity در اندروید در جدول زیر تشریح شده است:

 

شرحوضعیت
در این وضعیت ، activity کاملا قابل مشاهده بوده و کاربر می تواند با آن مستقیما تعامل داشته باشدRunning (در حال اجرا و قابل تعامل مستقیم )
در این وضعیت ، Activity همچنان قابل مشاهده است ، اما نه به طور کامل و به اصطلاح دیگر در foreground قرار ندارد. در واقع نمونه در حال اجرا است، اما ممکن است سیستم اندروید آن را از حافظه پاک کند (kill)Paused (متوقف شده اما همچنان قابل رویت )
Activity قابل مشاهده نیست، نمونه در حال اجرا است اما ممکن است توسط سیستم از حافظه پاک شودStopped (متوقف شده و غیر قابل رویت )
در این وضعیت سیستم اندروید متد () finish را صدا زده و activity مورد نظر در پی اجرای شدن این متد از حافظه پاک شده استKilled (کاملا نابود یا به
اصطلاح از حافظه پاک شده است)

 

در نمودار زیر چرخه ی حیات یک activity را به همراه متدهای مهم آن مشاهده می کنید.

activity
 

 

لازم به ذکر است که اندروید متدهای دیگری نیز جهت چرخه ی حیات در اختیار دارد، اما موارد استفاده از آن ها نادر است. به عنوان مثال می توان به متد () onDestroy اشاره کرد.

 


پایان یافتن activityها توسط سیستم عامل

سیستم اندروید این اجازه را دارد که در راستای بهبود کارایی و بهینه سازی سرعت، با recycle کردن activityها (استفاده ی مجدد،) منابعی را آزاد کند. گفته می شود که سیستم عامل اندروید می تواند activityها را فارغ از کل فرایند اپلیکیشن (به صورت منفرد) خاتمه دهد، در حالی که واقعیت چیز دیگری است. سیستم اندروید هیچگاه activityهای فردی را recycle نمی کند، بلکه کل فرایند را بر اساس قوانین مشخص پایان می دهد.

 

توجه: این یک باور غلط است که اندروید activity های منفرد را از حافظه پاک می کند. متاسفانه این توضیح اشتباه در سایت رسمی توسعه اندروید نیز ذکر شده است. اما بنا به گفته ی Dianne Hackborn که عضو تیم طراحان و توسعه دهندگان اندروید، بخش پیاده سازی out of memory killer هست، اندروید هیچگاه activity ها را به صورت منفرد خاتمه نمی دهد، بلکه کل فرایند میزبان activity ها را پایان می دهد.

توجه: یک activity برای اینکه اطلاعات و وضعیت خود را به درستی ذخیره کرده و بعده ها بتواند آن را بازیابی کند، ناگذیر است اطلاعات state را در زمان مناسب ذخیره کند. همچنین، در صورتی که activityهای غیر ضروری دیگر قابل مشاهده یا دسترسی نبودند، می بایست عملیات غیر ضروری را به منظور صرفه جویی در منابع سیستم متوقف کند.

برای متوقف کردن listener های  framework (گوش فراخوان ها) و بروز رسانی های UI ، می بایست متد () onPause را فراخوانی کرده و سپس با استفاده از متد () onStop داده های اپلیکیشن را ذخیره نمایید. دو تابع نام برده حتما پیش از خاتمه یافتن activity صدا خورده می شوند. با فراخوانی () onResume می توانید دوباره listener ها را تخصیص داده و در صورت لزوم، بروز رسانی های UI را بر اساس داده های ذخیره شده از سر بگیرید (مجددا راه اندازی نمایید).

علاوه بر مدیریت منابع ( resource management ) اندروید می بایست activity ها را در صورت رخداد تغییر در تنظیمات دستگاه، از نو ایجاد کند. آبجکت Configuration دربردارنده ی تنظیمات و پیکربندی جاری دستگاه می باشد. اگر این تنظیمات تغییر کند، activity های مجددا راه اندازی می شوند چرا که لازم است برای این تنظیمات جدید از منابع/ resource متفاوت استفاده کنند.

 

 


امیدواریم آموزش Lifecycle چرخه ی حیات Activity در اندروید نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

 

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟