پیش نیاز
قسمت های یک برنامه ی اندرویدی:
یه برنامه ی اندرویدی سه قسمت کلی داره که هنگام شروع برنامه به ترتیب اجرا میشن:
Application -> Activity -> Fragment
------------------------------------------------------
1 * Application
-------------------------------------------------------
m * Activity
1 <= m
-------------------------------------------------------
n * Fragment
0 <= n
------------------------------------------------------
در یک برنامه ی اندرویدی تنها یک Application داریم و حداقل یک Activity
داشتن یک یا چند Fragment اختیاریه البته استفاده از Fragment بجای اکتیویتی باعث میشه برنامه انعطافپذیر تر باشه.
یک برنامه ی اندرویدی می تونه یک یا چند اکتیویتی داشته باشه اکتیویتی ها به عنوان مجری اصلی کد های ما به حساب میان (مثل متد main در برنامه های کنسولی جاوا) پس از Application به اولین اکتیویتی که شروع به فعالیت میکنه main activity گفته میشه.
وضعیت های یک اکتیویتی

در سیستم عامل اندروید یک اکتیویتی دارای شش وضعیت کلیه به مجموع این وضعیت ها چرخه ی حیات اکتیویتی در اندروید میگیم.
وقتی در هر وضعیتی از چرخه قرار داریم وضعیت متقارنش وجود داره که اگر Activity وارد وضعیت جدید نشه و باز بخواد شروع به اجرا شدن کنه از وضعیت متقارن خودش شروع میکنه به اجرا شدن.
متقارن هر وضعیت:
نکته
برای onPause و onStop حالت استثنا هم وجود داره در این حالت اکتیویتی از onCreate شروع به اجرا شدن می کنه و این حالت زمانی اتفاق میفته که حافظه ی گوشی کمه و برنامه هایی با اولویت بالاتر به حافظه نیاز دارن تو این شرایط اکتیویتی به وضعیت onPause یا onStop میره بعد برای اجرا به onCreate برمیگرده
البته وضعیت های دیگه ای هم برای یک اکتیویتی وجود داره مثل onRestart, onSavedInstanceState و... که بین این 6 وضعیت اصلی قرار دارن برای خلاصه نویسی و کوتاه کردن کلام و قابل فهم تر بودن همین شش وضعیتو به اختصار بیان کردم
در تصویر نمونه ی override کردن هر وضعیت برای اجرای کد به زبان کاتلین نوشته شده دیگه خودتون به عنوان برنامه نویس باید تصمیم بگیرید کد هاتونو تو کدوم وضعیت اجرا کنید...