Activiy Lifecycle
زمانی که یک اکتیویتی ساخته میشه متدهای onCreate و onStart و onResume به ترتیب فراخوانی میشوند تا زمانی که ما اکتیویتی را مشاهده میکنیم و زمانی که یک اکتیویتی میخواد به کار خودش خاتمه بده متدهای onPause و onStop و onDestroy به ترتیب فراخوانی میشوند.
متد onSaveInstanceState بعد از onPause فراخوانی میشود و ما میتوانیم دادههای مورد نظر خودمون رو در Bundle موجود ذخیره کنیم و به صورت اختیاری برای بازگردانی اطلاعات در onCreate و یا در onRestoreInstanceState اقدام کنیم، به شرطی که متد onSaveInstanceState فراخوانی شده باشد احتمال دارد متد onRestoreInstanceState بعد از onStart فراخوانی میشود (متد onRestoreInstanceState در صورتی که متد onRestart فراخوانی شود، فراخوانی نمیشود).
زمانی که صفحه گوشی را میچرخوانیم متدهای onPause و onSaveInstanceState و onStop و onDestroy و onCreate و onStart و onRestoreInstanceState و onResume به ترتیب فراواخی میشوند.
متد onRestart فقط زمانی صدا زده میشود که چرخه حیاط تا متد onStop پیش برود، زمانی که به اکتیویتی بعد برویم یا برنامه را به بکگراند ببریم متدهای onPause و onSaveInstanceState و onStop به ترتیب فراخوانی میشوند و پس از بازگشت به برنامه متدهای onRestart و onStart و onResume به ترتیب فراخوانی میشوند (متد onRestoreInstanceState فراخوانی نمیشود).
onCreate اولین متدی است که فراخوانی میشود و باید حتما view مورد نیاز اکتیویتی در آن مشخص شود.
onStart این متد زمانی فراخوانی میشود که قرار است اکتیویتی به کاربر نمایش داده شود، در این زمان اکتیویتی دارد خود را برای نمایش داده شدن و تعامل با کاربر آماده میکند.
onResume این متد زمانی فراخوانی میشود که اکتیویتی به کاربر نمایش داده شده است. برنامه تا زمانی که اکتیویتی به کاربر نمایش داده میشود در این وضعیت باقی میماند.
onPause این متد زمانی که اولین نشانه از خروج کاربر مشاهده شود فراخوانی میشود. فراخوانی این متد به این معنی است که اکتیویتی دیگر به کاربر نمایش داده نمیشود.
onStop این متد زمانی فراخوانی میشود که دیگر فعالیت های موجود در اکتیویتی برای کاربر قابل مشاهده نیست.
onDestroy این متد در دو زمان فراخوانی میشود. اول زمانی که کار اکتیویتی به پایان رسیده است و دوم بخاطر تغییر در تنظیمات (configuration change).
زمانی که اندروید با کمبود حافظه مواجه میشود اقدام به حذف یکسری از دادههای از حافظه میکند.
بر اساس اولویت:
- foreground process
- visible process
- service process
- cached process