Activity ها در اندروید – آموزش برنامه نویسی Android

  • سه شنبه ۱۶ مرداد ۱۳۹۷
  • بازدید ۶۱۸ نفر

android activities 2282 تصویر

Activity ها در اندروید

Activity یک صفحه نمایش با یک رابط کاربری مانند یک Window و یا Frame در جاوا است. Activity اندروید یک زیر کلاس از کلاس ContextThemeWrapper می باشد.

چرخه حیات Activity

اگر شما با زبان C ، زبان C++ و یا Java کار کرده باشید، می دانید که برنامه شما باید از تابع main() شروع به فعالیت کند. در سیستم اندروید نیز روشی شبیه به آن وجود دارد یعنی برنامه اندرویدی در یک activity با فراخوانی متد onCreate() شروع به کار می کند. در اندروید یک دنباله از متد های callback وجود دارد که فعالیت را شروع می کنند و یک دنباله دیگر نیز وجود دارد که فعالیت را از بین می برد. گفته های بالا در نمودار زیر نشان داده شده اند:

android activities 2282 1 تصویر

کلاس Activity فراخوانی های زیر را به مشابه رویداد تعریف می کند. شما نیازی به پیاده سازی همه متد های callback ندارید. با این حال، مهم است که شما هر کدام را درک کنید و آن هایی را پیاده سازی کنید که اطمینان دارید برنامه شما به نحوی که کاربران انتظار دارند رفتار می کنند.

ردیفتوضیحات
۱onCreate()

این اولین متد callback است و زمانی که activity برای اولین بار ایجاد می شود، فراخوانی می شود.

۲onStart()

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

۳onResume()

این متد زمانی فراخوانی می شود که کاربر شروع به تعامل با برنامه می کند.

۴onPause()

activity متوقف شده ورودی کاربر را دریافت نمی کند و نمی تواند هیچ کدی را اجرا کند و زمانی که فعالیت فعلی متوقف می شود و فعالیت قبلی از بین می رود، فراخوانی می شود.

۵onStop()

این متد زمانی فراخوانی می شود که دیگر activity برای کاربر قابل مشاهده نباشد.

۶onDestroy()

این متد قبل از اینکه activity توسط سیستم تخریب شود، فراخوانی می شود.

۷onRestart()

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

مثال

این مثال از طریق مراحل ساده، چرخه فعالیت یک برنامه کاربردی اندروید را به شما نشان می دهد. برای تغییر برنامه اندرویدی که در بخش “مثال ساده در اندروید استودیو” ایجاد کردیم، مراحل زیر را دنبال کنید.

مرحلهتوضیحات
۱شما از نرم افزار Android studio برای ایجاد یک برنامه اندرویدی استفاده می کنید و سپس آن را به عنوان HelloWorld تحت یک بسته com.example.helloworld نامگذاری می کنید.
۲فایل MainActivity.java را مانند آنچه که در زیر توضیح داده شده است، تغییر دهید. سایر فایل ها را تغییر ندهید.
۳برنامه را اجرا کنید تا شبیه ساز اندروید راه اندازی شود و نتیجه تغییرات انجام شده در برنامه را تأیید کنید.

در زیر محتوای اصلاح شده فایل src/com.example.helloworld/MainActivity.java را مشاهده می کنید. این فایل همه متد های چرخه های حیاتی برنامه را شامل می شود. متد Log.d() برای تولید پیام های Log استفاده می شود:

یک کلاس activity تمامی اجزای رابط کاربری را که در در فایل XML موجود در مسیر res/layout قرار دارد، بارگذاری می کند. دستور زیر اجزاری رابط کاربری را از فایل res/layout/activity_main.xml بارگذاری می کند:

یک برنامه می تواند بدون هیچ محدودیتی، شامل یک یا چند activity باشد. هر یک از activity هایی که در برنامه تان تعریف می کنید، باید در فایل AndroidManifest.xml اعلام شود. همچنین activity های اصلی برنامه که بعد از اجرای برنامه شروع می شوند، با استفاده از تگ <intent-filter> مشخص می شود:

اگر می خواهید برنامه شما در لیست برنامه های LAUNCHER نمایش داده شود باید یکی از activity های موجود را به عنوان activity اصلی انتخاب کنید.

خروجی Log برای Activity

برنامه Hello World اصلاح شده را اجرا کنید. ما فرض می کنیم شما AVD (Android Virtual Device) خود را حین تنظیم محیط برنامه نویسی اندروید ایجاد کرده اید. به منظور اجرای برنامه در اندروید استودیو، یکی از فایل های activity برنامه را باز کنید سپس بر روی نماد اجرا کلیک کنید. اندروید استودیو این برنامه را در AVD نصب کرده و آن را اجرا می کند، در نهایت اگر همه چیز به درستی تنظیم شده باشد، یک پنجره شبیه ساز نمایش داده خواهد شد و می توانید در پنجره LogCat اندروید استودیو پیام های Log را مشاهده کنید:

اگر بر روی دکمه قفل صفحه در شبیه ساز اندروید کلیک کنیم ، پیام های تولید شده در پنجره LogCat را مشاهده می کنیم:

حال صفحه خود را در شبیه ساز اندروید باز کنید و پیام های جدیدی را که در پنجره LogCat ایجاد شده اند را مشاهده کنید:

در نهایت می توانید اجرای برنامه خود را متوقف کنید و شاهد پیام تولید شده زیر در LogCat باشید:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است