برنامه نویسی اندروید - دانشگاه صنعتی قم

این وبلاگ کانال ارتباطی با دانشجویان درس«برنامه نویسی موبایل» دانشگاه صنعتی قم می باشد.

برنامه نویسی اندروید - دانشگاه صنعتی قم

این وبلاگ کانال ارتباطی با دانشجویان درس«برنامه نویسی موبایل» دانشگاه صنعتی قم می باشد.

محتویات این وبلاگ با هدف آموزش اندروید در دوره درسی "برنامه نویسی موبایل" در دانشگاه صنعتی قم توسط اینجانب گردآوری شده است.
تعداد زیادی از مطالب ترجمه شده در این وبلاگ توسط دانشجویان دانشگاه صنعتی قم به عنوان پروژه های این درس ترجمه شده است.
در صورتی که تصمیم به تماس با من دارید، می توانید از طریق آدرس ایمیل qut دات android در جی میل دات کام با من تماس بگیرید.
-------------------
اگر بتوانم به شما کمکی در زمینه برنامه نویسی اندروید بکنم، خوشحال خواهم شد با این حال اگر پرسشی را ارسال کردید و بنده نیز به دلیل مشکلات و مشغله نتوانستم پاسخگو باشم، پوزش بنده را پیشاپیش پذیرا باشید.
-------------------
چون افراد زیادی از من درخواست می کنند تا برنامه نویسان اندروید به خصوص در شهر قم را به آنها معرفی کنند، اگر تمایل دارید رزومه و یا مشخصات خود را برایم ارسال کنید تا در صورت وجود درخواستهایی از این دست به شما اطلاع دهم.
از نظر من محدویتی به شهر قم وجود ندارد، لذا اگر برنامه نویس اندروید در شهرهایی دیگر هستید و یا به دنبال نیروی برنامه نویس اندروید هستید با من در تماس باشید، شاید بتوانم در این زمینه به شما کمکی بکنم :)
ناگفته نماند از آنجایی که در فضای مجازی من شناختی از هیچ شخص یا شرکتی ندارم، اگر شخصی به دنبال نیروی کار باشد، به افرادی که با مشخصات درخواستی ایشان تطابق داشته باشند، اطلاع خواهم داد و توصیه می شود برنامه نویسان محترم نیز قبل از شروع به همکاری، ملاحظات لازم در این زمینه را به عمل آورند چون من نیز شناختی از طرف مقابل ندارم.

طبقه بندی موضوعی

01- چرخه حیات اکتیویتی - شروع اکتیویتی

جمعه, ۲ خرداد ۱۳۹۳، ۰۹:۱۱ ب.ظ

مترجم: الهه سلیمانی

آدرس مطلب اصلی: http://developer.android.com/training/basics/activity-lifecycle/starting.html

شروع Activity

بر خلاف دیگر نمونه های برنامه نویسی که در آن برنامه با متد Main () ارائه شده است، شروع کد در یک نمونه Activity با استناد به روش پاسخ به تماس های خاص در سیستم عامل اندروید که به مرحله خاصی از چرخه حیات آن مطابقت دارد. راه اندازی یک Activity که دنباله ای از متدهای پاسخ به تماس است، امکان از بین بردن یک activity وجود دارد.

در این درس روی مهم ترین متدهای چرخه حیات Activity مرور می کنیم و به شما چگونگی مدیریت اولین فراخوانی چرخه حیات نشان می دهیم تا یک نمونه جدید از Activity ایجاد کینم.

درک چرخه تماس مجدد

در چرخه حیات یک activity، سیستم تماس ها مجموعه کوچکی از چرخه حیات متدها، در یک توالی مشابه گام های یک هرم است. به این معنا که هر مرحله از چرخه حیات activity یک گام جداگانه در هرم است. به عنوان مثال در سیستم یک activity جدید ایجاد می کند، در هر متد callback ,activity یک قدم به سمت بالا حرکت می کند. بالای هرم نقطه ای که activity ها در حال اجرا در پیش زمینه است و کاربر می تواند با آن ارتباط برقرار کند.

به عنوان کاربر شروع به ترک activity می کند، سیستم متد های دیگر را جهت از بین بردن activity فراخوانی می کند که activity را به پایین هرم حرکت می دهد. در برخی از موارد activity تنها بخشی از راه حرکت به پایین هرم را می رود و بعد منتظر می ماند. (مانند زمانی که کاربر به برنامه دیگری سوئیچ می کند (، که از آن نقطه activity می تواند به بالا حرکت کند (در صورتی که کاربر activity را برگرداند) و دوباره به جایی که رها کرده بود بر می گردد.

شکل 1. تصویر ساده از چرخه حیات activity، به عنوان مراحل هرم نشان داده شده است . نشان می دهد که چگونه، برای هر پاسخ به تماس از activity استفاده می شود، activity به سوی بالای هرم حرکت می کند و با فراخوانی متد callback , activity یک گام به پایین حرکت می کند. Activity متوقف شده می تواند دوباره از سر گرفته شود.

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

آیا سانحه نیست اگر کاربر تماس تلفنی دریافت کند و یا به برنامه دیگری سوئیچ کند در حالی که از برنامه شما استفاده می کند.

آیا وقتی که کاربر با استفاده از Activity نیست از منابع ارزشمند سیستم استفاده نمی کند.

آیا پیشرفت کاربر را از دست نمی دهد اگر آنها برنامه خود را ترک و یا بعدا به آن مراجعه کنند.

آیا سانحه نیست، از دست دادن پیشرفت کاربر زمانی که صفحه نمایش بین چشم انداز و جهت گیری عمودی می چرخد.

جدول 1 . زوج های حالت چرخه حیات Activity و متد های فراخوانی.

همانطور که شما در درس های زیر را یاد می گیرید، موقعیت های مختلفی است که در آن Activity ها بین حالت های مختلفی که وجود دارد حرکت می کنند، در شکل 1 نشان داده شده است. با این حال، تنها سه تا از این حالات می توانند استاتیکی باشند. که Activity فقط می تواند در یکی از این سه حالت برای یک مدت زمان طولانی بماند:

تعیین راه اندازی Activity برنامه شما

Resumed
در این حالت Activity در پیش زمینه است و کاربر می تواند با آن ارتباط برقرار کند. (همچنین گاهی اوقات به حالت اجرا می توان بازگشت.)

Paused
در این حالت، بخشی از اجرای یک Activity توسط یکی دیگر از Activity ها به فعالیت دیگر که در پیش زمینه کم رنگ شده است و یا کل صفحه نمایش را پوشش نمی دهد. Activity متوقف می شود و از کاربر ورودی دریافت نمی کند و هیچ کدی را نمی تواند اجرا کند.

Stopped
در این حالت، Activity کاملا مخفی است و برای کاربر قابل مشاهده نمی باشد و در پس زمینه می باشد. به عنوان مثال در حالی که Activity متوقف شده است، تمام اطلاعات وضعیت خود، از جمله متغیرهای عضو، حفظ شده است، اما قادر به اجرای هیچ کدی نمی باشد.

حالات دیگری که (ایجاد و آغاز شده) گذرا است و سیستم با فراخوانی متد callback چرخه حیات بعدی به سرعت از روی آنها به حالت بعدی حرکت می کند. به این معنا که سیستم پس از فراخوانی متد OnCreate()، به سرعت متد onStart() را فرا می خواند، و بعد به سرعت از متد onResume() پیروی می کند.

که آن برای چرخه ی حیات Activity های اصلی می باشد. حالا شما می خواهید شروع به یادگیری در مورد برخی از رفتارهای خاص چرخه حیات بکنید.

تعیین راه اندازی Activity برنامه شما

هنگامی که کاربر آیکون برنامه خود را از صفحه اصلی انتخاب می کند، سیستم متد OnCreate() را برای Activity نرم افزاری که شما اعلام کردید راه اندازی شود، فراخوانی می کند. این Activity به عنوان نقطه ورودی اصلی به رابط کاربری نرم افزار عمل می کند.

شما می توانید تعریف کنید که کدام Activity به عنوان Activity اصلی در فایل ظاهری اندروید، AndroidManifest.xml، در ریشه پوشه پروژه خود استفاده کنید.

Activity اصلی برای برنامه شما باید در ظاهر با که شامل عمل های اصلی و دسته ی LAUNCHER تعریف کرد. به عنوان مثال:

ایجاد یک نمونه جدید

اکثر برنامه ها شامل چندین Activity مختلف هستند که به کاربر اجازه می دهد عملیات مختلفی انجام دهد. این که آیا یک Activity، Activity اصلی است که با کلیک یک کاربر روی آیکون برنامه ایجاد شده است یا یک Activity دیگر است که با شروع برنامه و به درخواست کاربر ایجاد شده است، سیستم هر نمونه Activity که ایجاد می کند به وسیله ی فراخوانی متد onCreate() است.

شما باید از اجرای متد OnCreate () برای اجرای اولیه منطقی هنگام راه اندازی نرم افزار که باید تنها یک بار در تمام عمر Activity اتفاق می افتد استفاده شود. برای مثال، برای اجرای متد OnCreate () باید رابط کاربری و احتمالا، نمونه برخی از متغیرهای کلاس تعریف شود.

به عنوان مثال، مثال زیر از متد oncreate() نشان می دهد اجرای برخی از کد ها که برای تنظیمات اساسی برای Activity ها، مانند تعریف رابط کاربری (تعریف یک فایل XML layout) ، تعریف متغیرهای عضو، و پیکربندی برخی از رابط های کاربری را نشان می دهد.

توجه: برای جلوگیری از اجرای API های جدید در سیستم های قدیمی تر و آندروید 2.0 (سطح API 5) از SDK_INT استفاده می شود. نسخه های قدیمی تر با یک استثنا در زمان اجرا روبرو می شوند.

پس از اتمام اجرای متد OnCreate ()، سیستم متد onResume () در جانشینی سریع متد onStart () فراخوانی می کند. Activity شما هرگز در حالات ایجاد شده ساکن نمی ماند. با لحاظ فنی، Activity برای کاربر قابل مشاهده می شود که متد onStart () نامیده می شود، اما onResume () به سرعت پیرو است و Activity های باقی مانده در این حالت از سر گرفته می شود تا زمانی که چیزی برای برای تغییر رخ دهد، مانند هنگامی که یک تماس تلفنی دریافت می شود، هدایت کاربر به Activity های دیگ، و یا صفحه نمایش دستگاه خاموش می شود.

در درس های بعدی، شما خواهید دید که چگونه از طرفی دیگر اجرای متد، onStart () و onResume ()، در طول چرخه حیات Activity ها در هنگام استفاده از سرگیری Activity از حالات Paused و یا Stopped سودمند هستند.

نکته: متد OnCreate () شامل یک پارامتر به نام savedInstanceState است که در درس دوم در مورد باز سازی Activity درسایت بحث شده است.

شکل 2 یک مثال دیگر از ساختار چرخه حیات activity با تمرکز بر سه فراخوانی مجدد اصلی که فراخوانی سیستم در دنباله، هنگام ایجاد نمونه ی جدیدی از activity : OnCreate ()، onStart () و onResume () هنگامی که این دنباله از فراخوانی مجدد کامل، حالت activity ها از سر گرفته می شود تا در آن کاربران بتوانند با activity ها ارتباط برقرار کنند تا زمانی که به activity های مختلف سوئیچ کنند.

از بین بردن activity

در حالی که اولین فراخوانی از چرخه حیات activity، OnCreate () است، آخرین فراخوانی آن OnDestroy() است. سیستم فراخوانی این متد را روی activity به عنوان آخرین متد انجام می دهد، که activity را به طور کامل از حافظه سیستم حذف می کند.

اکثر برنامه های کاربردی نیازی برای پیاده سازی این متد ندارند چون منابع کلاس های محلی با activity ها تخریب شده و یا activity ها خود در طی onPause () و onStop () پاکسازی می شوند. با این حال، اگر activity ها خود شامل موضوعات پس زمینه است که در طول OnCreate () و یا دیگر منابع طولانی مدت است که به طور بالقوه می تواند از حافظه خارج شود، به درستی بسته نشده ،ایجاد شده است، باید آنها را در OnDestroy () از بین برد.

نکته: سیستم با فراخوانی OnDestroy () بعد از فراخوانی onPause () و onStop () در تمام شرایط به جز یکی : هنگام فراخوانی متد finish() از درون متد oncreate() .در برخی موارد، مانند زمانی که activity خود را به عنوان یک تصمیم گیرنده به طور موقت برای راه اندازی activity دیگر، ممکن است متد finish() فراخوانی شود از درون متد OnCreate()برای از بین بردن activity. در این مورد، سیستم بلافاصله خواستار فراخوانی متد OnDestroy () بدون فراخوانی هر یک از متدهای چرخه حیات است.

  • وهاب صمدی بخارایی

نظرات  (۲)

خوب بود
پاسخ:
دست مترجمش خانم سلیمانی درد نکنه! :)
دست شما درد نکنه خیلی مفید بود

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی