آموزش برنامه نویسی اندروید استودیو

چرخه‌ی حیات اکتیویتی ها در اندروید

اکتیویتی ها در اندروید ( Android activity )

یکی از اجزای اساسی توسعه‌ی برنامه نویسی در اندروید، اکتیویتی (Activity) است. هر اکتیویتی دارای یک بخش فایل برنامه نویسی (جاوا) و یک صفحه‌ی رابط کاربری (XML) است. برای اطلاعات بیشتر مطلب اکتیویتی چیست را مطالعه کنید.

یک اکتیویتی با کاربر تعامل دارد و بنابراین یک صفحه برای نمایش اجزای واسط کاربری (UI) ایجاد می‌شود. هر برنامه‌ی اندرویدی می تواند شامل چندین اکیتویتی مختلف باشد که به معنای در تعامل بودن صفحات مختلف برنامه با یکدیگر است.

چرخه عمر اکتیویتی ( Activity life cycle )
هر اکتیویتی دارای یک چرخه حیات منحصر به خود، در طی اجرای برنامه است. اکتیویتی ها درون پشته‌ی اکتیویتی (Stack Activity) ذخیره و مدیریت می‌شوند. اکتیویتی جدید (از لحاظ زمان اجرا)، در بالای پشته قرار می‌گیرد و در وضعیت اجرا قرار می‌گیرد و اکتویتی های پیشین در زیر اکتیویتیِ جدیدتر قرار می‌گیرند.  هنگامی که اکتیویتی موجود در بالای پشته خارج می‌شود، نزدیکترین اکتیویتی به بالای پشته، فعال می شود.

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

هر اکتیویتی 4 حالت دارد:

Running (در حال اجرا) : اکتیویتیِ موجود در بالای پشته در حالت اجرا قرار دارد که به این معناست این اکتیویتی در صفحه نمایش در حال نمایش است.

Paused (ایستاده شده) : اکتیویتی که زنده است ولی در حال فعالیت نیست و در حالت Pause قرار دارد، به این معنا که اکتیویتی دیگری (جدیدتری) بالای پشته آمده و روی صفحه نمایش در حال اجرا است. این اکتویتی می تواند پس از خاتمه‌ی فعالیت اکتیویتی فعلی یا اعلان درخواست جدید فعال شود.

Resumed ( ادامه یافته) : هنگامی که یک اکتیویتی ایستاده شده ( Paused )، دوباره فعال و زنده شود که در این حالت اکتیویتی رفرش شده و دوباره اجرا می شود.

Stopped (قطع شده) : اکتیویتی ای که دیگر در صفحه قابل دسترس نیست و از پشته نیز خارج شده است در حالت توقف قرار دارد.

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

اکتیویتی ها با متدهای فراخوانی زیر پیاده سازی می‌شوند:

OnCreate(): این متد اولین متد فراخوانی در اندروید است. این متد در هنگامی که اکتیویتی ساخته می‌شود فراخوانی می شود. این قسمت همان جایی است که همه‌ی اجزای صفحه مانند دکمه ها، ویوها (Views) در آن قرار می‌گیرد.

OnStart(): این متد دومین متد فراخوانی است. این متد زمانی فراخوانی می شود که اکتیویتی بر روی صفحه نمایش قابل دسترسی (قابل مشاهده) است.

OnResume(): این متد بعد از متد OnStart می آید اگر اگر اکتیویتی از حالت ایستا به در حال اجرا تغییر کرده باشد. این متد معمولا در هنگام تعامل کاربر با اکتویتی ها استفاده می شود.

OnPause() : این اکتیویتی بدنبال OnResume می آید. یعنی هنگامی که اکتیویتی قبلی به جالت اجرا در آید این اکتیویتی در حالت ایستا (مکث) قرار می گیرد.

OnStop() : این متد هنگامی رخ می دهد که اکتیویتی دیگری OnResume (اجرای مجدد) می شود و اکتیویتی پیشین دیگر قابل دسترسی نیست و از صفحه نمایش حذف می شود.

OnDestroy() : آخرین فراخوانی و برای پایان اکتیویتی استفاده می‌شود.

نمودارهای زیر چرخه‌ی کامل اکتیویتی‌ها در اندروید را نمایش می‌دهد.

مثالی از اکتیویتی ها در اندروید
در اینجا مثالی از اکتیویتی ها آورده ایم. نرم افزار اندروید استودیو را باز کنید و پروژه جدیدی ایجاد کنید و کدهای زیر را درون فایل MainActivity.java قرار دهید: