چرخه اکتیویتی در اندروید
فیلم آشنایی با چرخهی اکتیویتی و نحوهی فعالیت متدهای اکتیویتی
متن به همراه عکس آشنایی با چرخهی اکتیویتی و نحوهی فعالیت متدهای اکتیویتی
وقتی میخواهیم از اپلیکیشنی استفاده کنیم، یکسری فعالیت ها انجام شده و اطلاعاتی ذخیره میشود. این مراحل در داخل یک چرخه انجام میشوند که به آن چرخه اکتیویتی (lifecycle activity) میگویند.
برحسب مدت زمان و نحوه استفاده از برنامه، در چرخه اکتیویتی ممکن است حالتهای مختلفی رخ دهد که آن ها را بررسی می کنیم.
در مرحلهی اول از چرخه اکتیویتی، وقتی اکتیویتی را اجرا کنیم و کاربر روی آیکونِ اپلیکیشن کلیک کند، اپلیکیشن اجرا میشود و 3 متد به فاصلهی خیلی کوتاه، به صورت پشت سر هم اجرا میشود.
- ()onCreate
- ()onStart
- ()onResume
اولین متد، ()one Create میباشد که برای اولین بار اجرا میشود و یک سری ویژگیهایی را که مربوط به آن اکتیویتی است، اجرا میکند. مثل ست کردن لایه و یا تعریف ویوهایی در آن اکتیویتی. (در کل عملیاتی را که انجام داده باشیم، در خود ذخیره میکند تا دفعات بعد با سرعت بیشتری اجرا شود و بتوانیم از آنها استفاده کنیم.)
()onStart و ()onResume نیز به فاصلهی خیلی کوتاه اجرا میشود تا مراحل ساخت یک اکتیویتی کامل شود. درنهایت اکتیویتی را به ما نشان میدهد تا بتوانیم با آن تعامل داشته باشیم.
در مرحلهی دوم از چرخه اکتیویتی، فرض کنید از این اکتیویتی که هستیم، به یک اکتیویتی دیگر برویم، (کاربر اکتیویتی دیگری را اجرا کند، مثل دکمهای برای رفتن به صفحهی بعد یا هنگام کاردن با اپلیکیشن با کاربر تماس بگیرند) متدی به اسم ()onPuse اجرا میشود یعنی اکتیویتی قبلی به حالتِ onPuse میرود و منتظر میماند تا کاربر در اکتیوتی جدید، کارهایی را که لازم است، انجام دهد تا فعالیتهایش را ادامه دهد.
وقتی اکتیویتی در حالت ()onPuse قرار میگیرد، 3 حالت ممکن است رخ دهد:
- کاربر به اکتیویتی قبل برمیگردد.
- اگر اپلیکیشنهای دیگر به حافظهی بیشتری نیاز داشته باشند، فعالیت اکتیویتی قبل از بین میرود.
- وقتی کاربر برای مدت طولانی در اکتیویتی جدید بماند، اکتیویتی قبل به حالت ()onStop میرود.
_ در حالت اول، اگر کاربر در زمان کوتاه به اکتیویتی برگردد، به صورت مستقیم متدِ ()onStart اجرا میشود. ( ()onCreate دیگر اجرا نمیشود.) و درنهایت کاربر میتواند با اپلیکیشن کار کند.
_ در حالت دوم، علاوه بر اپلیکیشن ما، اپهای دیگر نیز در حال اجرا شدن هستند. اگر این اپها در اولویت باشند و برای ادامهی فعالیت به حافظهی بیشتری نیاز داشته باشند، اپلیکیشن ما بسته میشود و درنهایت اکتیویتی باید از اول اجرا شود. (یعنی تمام اطلاعات برای خالی شدن حافظه پاک میشود و اگر کاربر به آن اکتیویتی برگردد، متد ()onCreate اجرا میشود.)
_ در حالت سوم، زمانی که کاربر مدت زیادی را در اکتیویتی جدید مانده باشد، اکتیویتی قبل به حالت ()onStop میرود.
در این حالت نیز ممکن است 3 اتفاق رخ دهد:
- وقتی کاربر بعد از مدت طولانی به اکتیویتی قبل بازمیگردد، متدِ ()onRestart اجرا میشود.
- اگر اپلیکیشنهای دیگر به حافظهی بیشتری نیاز داشته باشند، فعالیت برنامه از بین میرود.
- اگر سیستم عامل اندروید به حافظهی بیشتری نیاز داشته باشد، متد ()onDestroy اجرا میشود.
_ در حالت اول چون حافظهی ram هنوز وجود دارد، بعد از اینکه کاربر بعد از مدت طولانی به اکتیویتی قبل برمیگردد، متد ()onRestart و در ادامه ()onStart و ()onResume اجرا میشود و کاربر اپلیکیشن را میبیند.
_ در حالت دوم، کاربر در حین مدت طولانی که وارد اکتیویتی جدید شدهاست، از اپهای دیگر استفاده میکند و درنتیجه اپلیکیشنهایی که در اولویت هستند، به حافظهی بیشتری نیاز دارند. در این صورت، فعالیت برنامه از بین میرود و اکتیویتی از ابتدا باید ساخته شود و اگر کاربر به آن اکتیویتی برگردد، از متد ()onCreate اجرا میشود.
_ در حالت سوم، وقتی سیستم عامل اندروید برای یکسری عملیات به حافظهی بیشتری نیاز داشته باشد، اکتیویتی به حالت ()onDestroy میرود و اکتیویتی ما بسته میشود و اگر بخواهیم از آن استفاده کنیم، اکتیویتی از اول اجرا میشود.
دانلود فایل
مطالب زیر را حتما بخوانید
-
نحوهی کار با ویدئوپلیر (Video Player) از طریق پوشهی raw
7.42k بازدید
-
آلرت دیالوگ (AlertDialog) چیست و نحوهی کار با آن چگونه است؟
7.02k بازدید
-
اسنکبار (Snackbar) در اندروید
4.56k بازدید
-
ّFloating action Button (فلوتینگ اکشن باتن) در اندروید
4.4k بازدید
-
نحوهی کار با فریم لیوت (FrameLayout)
4.83k بازدید
-
یک روش برای تمرکز در برنامهنویسی
3.27k بازدید
دیدگاهتان را بنویسید