چرخه حیات Activityها در اندروید

انتقال وضعیت در موبایل

«چند نخی» در سیستم‌های‌عامل موبایل به یک اصل تبدیل شده‌است، این‌که شما همزمان چند کار را باهم انجام دهید بدون این‌که هیچ مشکلی برایتان پیش بیاید، عادی است.
کد خبر: ۴۵۷۲۵۶

در سیستم‌عامل iOS از نسخه ۴ به بعد قابلیت Multi Tasking یا همان چند نخی مطرح شد، در سیستم‌عامل ویندوز فون از نسخه 5/7 یا همان مانگو(Mango) این قابلیت اضافه شد که بتوان بین برنامه‌های دیگر حرکت کرد (البته در نسخه قبلی نیز تا حدودی می‌شد بین برنامه‌های دیگر حرکت کرد اما در Mango بهبود پیدا کرد). سیستم عامل اندروید هم دارای این قابلیت است. در این مقاله در نظر داریم این قابلیت را در این سیستم‌عامل توضیح دهیم. قبل از این‌که با بحثMulti Tasking در این سیستم‌عامل آشنا شوید، بهتر است در مورد Activity‌ها و چرخه حیات آنها مقدمه‌ای را بگوییم.

در شماره‌های پیش در مورد Activityها در برنامه‌نویسی اندروید صحبت کردیم، وقتی شما برنامه‌ای را باز می‌کنید به‌صورت پیشفرض یک Activity یا وظیفه اجرا می‌شود (البته به غیر از سرویس‌ها و نرم‌افزارهایی که پشت صحنه اجرا می‌شوند).

مراحل اجرای یک Activity به این صورت است که در مرحله اول متد onCreate یک وظیفه فراخوانی می‌شود.

این متد از حالت Frozen یا حالتی که کار آن متوقف شده ‌باشد، به فراخوانی یک Activeity می‌پردازد.

در مرحله بعدی مربوط به فراخوانی متد onStart است که یک وظیفه به کاربر نمایش داده می‌شود. حالت بعدی زمانی است که یک Activity از حالت onStop خارج شده یا به حالت روی صحنه (Foreground) رفته‌است.

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

اگر یک Activity برای مدت زمان زیادی در دسترس نباشد، یا کاری انجام ندهد، سیستم آن را به حالت Stop می‌برد، که برای مدیریت آن می‌توانید از متد onStop استفاده کنید.

در صورت قرار داشتن یک Activity در حالت Stop دو حالت برای آن پیش می‌آید؛ در حالت اول سیستم برای اجرا کردن برنامه‌های دیگر به حافظه بیشتری نیاز پیدا می‌کند.

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

آخرین وضعیت زمانی است که ما به عنوان یک برنامه‌نویس یک Activity را به‌طور کامل می‌بندیم. برای این‌کار متد finish مورد استفاده قرار می‌گیرد. ممکن است شما متد finish را فراخوانی نکنید و سیستم خودش یک Activity را از حافظه خارج کند. برای این‌که شما بتوانید بین این دو حالت تمییز دهید که کدام یک رخ داده ‌است، می‌توانید از متد isFinishing استفاده کنید. پس بعد از اتمام کار یک Activity‌ متد onDestroy فراخوانی می‌شود.

با توجه به مطالب گفته شده، نگهداری اطلاعات کاربر زمانی که مشغول انجام کارهای دیگر است اهمیت پیدا می‌کند، به‌طور مثال شما در حال تایپ یک ایمیل با گوشی خود هستید. و در همین حین برای شما یک SMS می‌آید، ‌یا یک تماس تلفنی برقرار می‌شود. نرم‌افزاری که با آن در حال تایپ ایمیل بودید باید این قابلیت را داشته باشد که متن نامه شما را نگه دارد تا زمانی که شما دوباره مشغول انجام کار خود شدید، بتوانید براحتی به متنی که پیش از این نوشته‌اید دسترسی پیدا کنید. برای این کار در متد onPause شما می‌توانید داده‌هایی را ذخیره کنید که در اجرای بعدی یک Activity‌ نیاز دارید تا در صورت از بین رفتن به هر دلیلی داده‌های شما از بین نرود و کاربر نیازی نداشته باشد که همه آنها را دوباره وارد کند.

منبع:

http://developer.android.com/reference/android/app/Activity.html

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها