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

چرخه ی حیات (fragment (life cycle در اندروید

با سلام خدمت دوستان عزیز در این مقالب قصد داریم در مورد چرخه ی حیات (life cycle) فرگمنت fragment در اندروید آموزش دهیم

در اندروید هر fragment چرخه ی حیات مختص به خود را دارد. با این وجود چرخه ی حیات آن همیشه به activity میزبان آن متصل است.

life cycle

 

زمانی که activity متوقف می شود، همگام با آن fragment های زیرمجموعه ی این activity نیز متوقف می شوند. اگر activity از حافظه کلا پاک شود (fragment (destroy های آن نیز همزمان از بین می روند.

 

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

متد onCreate() : اندروید زمانی این متد را صدا می زند که در حال ساختن fragment باشد. برنامه نویس می تواند کامپوننت هایی از fragment را که می خواهد در زمان ادامه یافتن ،activity بعد از توقف حفظ شود را مقداردهی اولیه نمایید. در واقع در این مرحله، fragment ایجاد شده است. این متد بعد از فراخوانده شدن () onCreate مربوط به activity و قبل از متد onCreateView() مربوط به fragment صدا خورده می شود

متد onCreateView() : نمونه ی fragment ، زنجیره یا سلسله مراتب view های خود را ایجاد می کند. به عبارت دیگر fragment در متد onCreateView() رابط کاربری یا ظاهر خود را تعریف می کند. در این متد با فراخوانی متد () inflate از آبجکت Inflator که به عنوان پارامتر به این متد فرستاده می شود، برنامه نویس می تواند یک layout را بارگذاری کرده و نمایش (inflate ) دهد.

در این متد نباید با activity تعامل داشته باشید. Activity هنوز کاملا ساخته و مقداردهی اولیه نشده است.

لزومی ندارد این متد را برای fragment های فاقد headless/UI فراخوانی کنید. view های inflate شده بخشی از زنجیره ی view های activity میزبان محسوب می شوند. به عبارت دیگر، هنگامی که fragment می خواهد viewهای خود را بسازد این متد را صدا می زند. به منظور پیاده سازی UIیا رابط کاری، برنامه نویس می بایست یک آبجکت view که پوشه ی حاوی fragment را مشخص می کند، به عنوان خروجی این متد تعریف کنید. اگر fragment رابط کاربری نداشته باشد، می توانید خروجی متد را null تعریف کنید.

متد onActivityCreated() : متد جاری پس از فراخوانی متد onCreateView() و زمانی که activity میزبان ایجاد شده است، صدا خورده می شود.

نمونه ی Activity و fragment همراه با زنجیره ی view های activity ساخته شده اند. در این برهه، می توان با فراخوانی متد findViewById() به view دلخواه دسترسی داشت.

در این متد شما می توانید از آبجکت هایی که به یک آبجکت Context نیاز دارند، نمونه سازی نمایید.

به عبارت دیگر، این متد بعد از onCreateView() و هنگامی که activity  میزبان ایجاد شده callمی شود. activity و fragment به صورت یک آبجکت view سلسله مراتبی برای activity تولید می شوند

متد onStart() : متد () onStart زمانی صدا زده می شود که fragment نمایان و قابل مشاهده شود

متد onResume() : مانی که Fragment در حال اجرا است

متد onPause() :

fragment  قابل مشاهده است اما دیگر فعال نیست مانند زمانی که activity دیگری، با انیمیشن بر روی activity حامل قرار می گیرد. Fragment با کاربر تعاملی ندارد. حال یا activity آن در حال متوقف شدن است یا یک عملیات مربوط به fragment در حال ویرایش آن در activity است

متد onStop () :

Fragment دیگر برای کاربر قابل مشاهده نیست

متد onDestroyView()  :

iew یا المان های رابط کاربری قابل مشاهد در fragment را پاک می کند. اگر fragment از backstack ساخته شده باشد، در آن صورت این متد فراخوانی می شود و پس از آن onCreateView صدا زده می شود. در واقع پس از فراخوانی این متد UI و ظاهر fragment به کلی از بین می رود

متد onDestroy() : این متد cleanup و پاک سازی نهایی fragment ها را انجام می دهد. لازم به ذکر است که این متد ممکن است اصلا فراخوانی نشود

 


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

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

ارسال دیدگاه

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

×

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

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

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

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