دوست داری برنامه اندروید بسازی ...!؟
نمی دونی از کجا شروع کنی ... !؟
یادگیری گام به گام و کاملا رایگان در
آکادمی همیار اندروید
شروع یادگیری
همکاران ما
تبلیغات
مطلب انتخابی شما

تاریخ ارسال : ۲۱ , ۰۴ , ۱۳۹۵
تعداد نظرات : ۲ نظر
دسته بندی : Activity Lifecycle, Android Studio

آشنایی کامل با چرخه حیات اکتیویتی (Activity Lifecycle) در برنامه نویسی اندروید

به نام خالق

 

سلام دوستان ؛

تو این جلسه قراره که با چرخه حیات اکتیویتی (Activity Lifecycle) به صورت کامل آشنا بشیم ، حالا چرا می گم به صورت کامل ، چون در بیشتر سایت های فارسی زبان به صورت پراکنده و گاهی اوقات نصفه توضیح داده شده ، اما امروز من یک مبحث کامل در مورد چرخه حیات اکتیویتی براتون آماده کردم ؛

بنده همیشه سعی دارم مباحث رو به صورت پروژه محور و با مثال توضیح بدم تا شما کاربران عزیز مباحث رو به خوبی درک کنید …

با همیار اندروید به درکی کامل از برنامه نویسی اندروید برسید …

 

چرخه حیات اکتیویتی اصلا چی هستش و چه کاربردی داره …!؟

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

حال در نظر بگیرید که ما از اکتیویتی A به اکتیویتی B رفته ایم و دیگر نیازی به اکتیویتی A نداریم …!!

آیا اکتیویتی A هنوز در حال اجراست و حافظه دستگاه را اشغال کرده است …!؟

آیا اکتیویتی A بسته شده و حافظه دستگاه آزاد شده است …!؟

اگر ما فقط برای یک مدت کوتاه به اکتیویتی B برویم ، آیا اکتیویتی A بسته خواهد شد …!؟

اگر به بخش تنظیمات اپلیکیشن خود برویم و پس از مدتی به اکتیویتی بازگردیم ، آیا اکتیویتی هنوز پا برجاست …!؟

آیا زمانی که یک موسیقی در اکتیویتی A در حال اجراست با رفتن به اکتیویتی B ، موسیقی متوقف می شود …!؟

آیا پس از بازگشت به اکتیویتی A ، موسیقی از ابتدا پخش می شود …!؟

و خیلی از موارد دیگر وجود دارد که همگی آن ها به چرخه حیات اکتیویتی بستگی دارد ،

ما با مدیریت چرخه حیات اکتیویتی می توانیم یک اپلیکیشن استاندارد ، قدرتمند و سریع ایجاد کنیم …

 

معرفی و ایجاد چرخه حیات اکتیویتی

به طور کل برای مدیریت چرخه حیات اکتیویتی هفت حالت وجود دارد ،

هر حالت دارای یک متد مخصوص به خود است ،

۱- onCreate() (ایجاد)

۲- onStart() (شروع)

۳- onResume() (ادامه)

۴- onPause() (مکث)

۵- onStop() (توقف)

۶- onDestroy() (نابود شدن)

۷- onRestart() (راه اندازی مجدد)

به عنوان مثال :

وقتی که شما اولین پروژه خود را ایجاد می کنید به صورت پیش فرض اولین متد چرخه حیات در اکتیوتیی ایجاد می شود ،

من یک پروژه جدید ایجاد کرده ام ، در تصویر زیر مشاهده می کنید که اولین حالت از چرخه حیات اکتیوتیی به نام onCreate ایجاد شده است

شما برای ایجاد دیگر حالت ها یا بهتر است بگویم برای ایجاد دیگر متدهای چرخه حیات باید به روش زیر عمل کنید

در حالی که درون کلاس اصلی اکتیویتی و خارج از متدهای دیگر هستید ، کلیدهای ترکیبی Ctrl+O را فشاردهید

حال می توانید دیگر متدهای مربوط به چرخه حیات را انتخاب کنید

یا اینکه به صورت دستی بنویسید

کدهای زیر مربوط به هفت متد چرخه حیات می باشند (کدهای کامل اکتیویتی من هستند)

 

معرفی کاربرد متدهای چرخه حیات برای مدیریت چرخه حیات اکتیوتی

یاد گرفتیم که هفت متد برای مدیریت چرخه حیات وجود دارد و آنها را هم ایجاد کردیم ،

حالا در این مرحله می خوایم یادبگیریم که هر متد چه کاربردی داره و کجای این چرخه قرار داره

برای درک چرخه حیات یک تصویر براتون آماده کردم ، این تصویر مربوط به چرخه حیات یک اکتیویتی می باشد ، خوب به تصویر دقت کنید

تشریح کامل متدها در تصویر بالا :

ما یک اپلیکیشن با دو اکتیویتی داریم (A , B) ، اکتیویتی مد نظر ما  اکتیویتی A می باشد

وقتی کاربر برای اولین بار اکتیویتی را اجرا می کند به ترتیب مراحل onCreate (ایجاد) ، onStart (شروع) ،onResume    (ادامه) اجرا می شوند و اولین UI یا همان رابط کاربری به کاربر نمایش داده می شود

۱- وقتی کاربر به اکتیویتی B می رود ، اکتیویتی A به حالت onPause وارد می شود و موقتا مکث می کند ، در این هنگام دستورات (کدها) درون متد onPause اجرا می شوند

۲- وقتی پس از یک مدت طولانی به اکتیویتی A بازنگردیم ، اکتیویتی A به حالت onStop وارد می شود و دیگر به کاربر نشان داده نمی شود ، در این هنگام دستورات (کدها) درون متد onStop اجرا می شوند (مانند زمانی که از کلید HOME گوشی استفاده می کنیم)

۳- بعد از مرحله onStop ، اکتیویتی A به حالت onDestroy وارد می شود ، این حالت همیشه صورت نمی گیرد درواقع زمانی که سیستم گوشی با کمبود حافظه مواجه می شود این متد فراخوانی می شود و اکتیویتی بسته خواهد شد

۴ و ۵ – اگر اکتیویتی ما در حالت های onPause یا onStop قرار داشته باشد ، درصورتی که برنامه های دیگر نیاز به حافظه داشته باشند فعالیت برنامه متوقف می شود و سپس اکتیویتی به حالت onCreate وارد می شود ، در این هنگام اکتیویتی از ابتدا ساخته می شود

۶- بعد از مرحله onPause ، زمانی که اکتیویتی موقتا مکث می کند ، اگر کاربر دوباره به اکتیویتی A برگردد ، چرخه حیات از مرحله onResume از سر گرفته می شود و دیگر نیازی به مرحله ایجاد (onCreate) و مرحله شروع (onStart) نیست

۷- بعد از مرحله onStop ، زمانی که اکتیویتی به کاربر نمایش داده نمی شود ، اگر کاربر دوباره به اکتیویتی A برگردد ، چرخه حیات به مرحله onRestart وارد می شود ، در این هنگام کدهای درون متد onRestart اجرا می شوند و سپس چرخه حیات از مرحله onStart از سر گرفته می شود و دیگر نیازی به مرحله ایجاد (onCreate) نیست

 

جمع بندی نهایی

 : onCreate وقتی که اکتیویتی برای اولین بار ایجاد می شود ، این متد فراخوانی می گردد

 : onStart وقتی که اکتیویتی به کاربر نمایش داده می شود ، این متد فراخوانی می گردد

 : onResume وقتی اکتیویتی شروع به تعامل با کاربر میکند ، این متد فراخوانی می گردد

 : onPause وقتی که اکتیویتی کنونی موقتا نگه داشته می شود و اکتیویتی دیگر شروع بکار می کند ، این متد فراخوانی می گردد

 : onStop وقتی که اکتیویتی به کاربر نمایش داده نمی شود ، این متد فراخوانی می گردد

 : onDestroy قبل از اینکه اکتیویتی کاملا از بین برود این متد توسط سیستم فراخوانی می گردد

 : onRestart وقتی که اکتیویتی پس از توقف دوباره شروع به کار می کند  ، این متد فراخوانی می گردد

 

 

 

 

خیلی خوب دوستان ، تا جایی که تونستم روان و ساده توضیح دادم تا شما دوستان عزیز این مبحث رو به خوبی درک کنید ،

این مبحث یک مبحث کلیدی هستش پس خوب تمرینش کنید …

و اینم بگم که نکات زیادی هنوز باقی موند که به امید خدا در مباحث بعدی آموزش خواهم داد …

اگه سوالی ، مشکلی ، پیشنهادی یا هرچیز دیگه ای بود می تونید کامنت بزارید ، حتما رسیدگی می شود …

به امید موفقیت ؛

بدرود .

 

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

همیار اندروید را در شبکه های اجتماعی دنبال کنید
یــــــک راه آسان برای ارتباط با هـــــــم :)
مطالب مرتبط با موضوع شما

برچسب‌ها: , , , , , , , , , , , , , , , , , , , , , , , , , , ,

نظرات کاربران

لطفا نظر ، پیشنهاد و انتقاد خود را فقط در ارتباط با موضوع بالا ذکر کنید و از سوالات پراکنده خود داری کنید
برای حفظ و برقراری نظم در سایت به سوالات پراکنده پاسخ داده نمی شود
در آینده سیستم پرسش و پاسخ راه اندازی خواهد شد
لطفا به قوانین احترام بگذارید

2 پاسخ به “آشنایی کامل با چرخه حیات اکتیویتی (Activity Lifecycle) در برنامه نویسی اندروید”

پاسخ دهید

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


ما را محبوب کنید