PDA

View Full Version : اکتیویتی ها



hesamy2004
دوشنبه 08 فروردین 1390, 08:31 صبح
هر اکتیویتی یک کامپوننت از برنامه است که صفحه نمایش را در اختیار میگیرد تا کاربران بتوانند با برنامه ارتباط (interact) برقرار کنند، مانند شماره گرفتن برای تماس، عکس گرفتن، ارسال ایمیل و یا دیدن نقشه. به هر اکتیویتی برای نمایش واسط کاربری (user interface) یک پنجره (در نمایشگر) اختصاص داده خواهد شد. پنجره عموماً کل صفحه نمایش را در بر میگیرد، اما ممکن است کوچکتر از آن هم باشد و بر روی سایر پنجره ها شناور (float) باشد.

هر اپلیکیشن یا برنامه معمولاً از چندین اکتیویتی تشکیل میشود که با هم در ارتباط هستند. بطور معمول، یک اکتیویتی در هر برنامه اکتیویتی اصلی است (با نام main اکتیویتی شناخته میشود) و زمانیکه کاربر برنامه را برای بار اول اجرا کرد به او نشان داده میشود. هر اکتیویتی برای انجام وظیفه محول شده به آن میتواند اکتیویتی های دیگر را فراخوانی کند تا کارهای دیگری انجام دهد. هر بار که یک اکتیویتی جدیدی شروع بکار میکند (start)، اکتیویتی قبلی متوقف میشود (stop). اما سیستم اکتیویتی قبلی را در استک (stack) نگه میدارد. بنابراین، وقتی اکتیویتی جدیدی اجرا میشود، اکتیویتی قبلی به داخل استک حل (push) داده میشود و همچنین اکتیویتی های قبلی که در داخل استک قرار داشتند نیز هرکدام یک سطح به عقب تر حل داده خواهند شد. مکانیزم استک بصورت “آخر وارد شده، اول خارج شود” (last in, first out) است. بنابراین، زمانیکه کار کاربر با اکتیویتی فعلی تمام شود و بر روی دکمه “Back” کلیک کند، اکتیویتی قبلی از داخل استک بیرون کشیده میشود (pop) و ادامه آن اجرا خواهد شد. (برای اطلاعات بیشتر راجع به طرزکار استک به مستند Tasks and Back Stack رجوع کنید)

زمانیکه با اجرای یک اکتیویتی، عمل اکتیویتی دیگری متوقف میشود، این تغییر از طریق روش های پاسخگویی در چرخه حیات اکتیویتی (activity’s lifecycle callback methods) ، شناخته میشود. چندین روش پاسخگویی برای هر اکتیویتی که ناشی از تغییر در وضعیت آن است، وجود دارد. روشهایی مانند سیستم در حال ساخت اکتیویتی است (creating activity)، در حال متوقف کردن آن است ( stopping activity)، درحال ازسرگیری پردازش است (resuming activity) یا درحال ازبین بردن آن است (destroying activity). بنابراین، هر روش پاسخگویی فرصتی را دراختیارتان میگذارد تا بسته به وضعیت حال حاضر سیستم، عمل خاصی که مد نظرتان است را انجام دهید. بعنوان نمونه، زمانیکه برنامه در توقف است، اکتیویتی میبایست آبجکت های حجیم مانند ارتباطات شبکه و دیتابیس را آزاد کند. زمانیکه فعالیت اکتویتی مجدداً از سر گرفته میشود، میتوانید دوباره منابع مورد نیازتان را دوباره سازی کنید و به ادامه کاری که قبلاً میکردید بپردازید. تمام این انتقال ها بین وضعیت های مختلف اکتیویتی بخشی از چرخه حیات اکتیویتی است.

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



ادامه دارد…

hesamy2004
پنج شنبه 18 فروردین 1390, 15:41 عصر
ساخت اکتیویتی

برای ساخت یک اکتیویتی، باید یک زیر کلاس از Activity بسازید (یا یک زیر کلاس از کلاسهای موجود). در زیر کلاستان، میبایست متدهای پاسخگویی را اجرا کنید تا سیستم بداند در وضعیت های مختلف چه کارهایی باید انجام دهد، مثلاً زمانیکه اکتیویتی درحال ساخته شدن است، درحال توقف است، درحال از سرگیری کار است و یا در حال از بین رفتن است (destroy). دو تا از مهمترین متدهای پاسخگویی در ذیل معرفی شده اند.

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

()onPause : سیستم زمانی این متد را اجرا میکند که کاربر در حال ترک این اکتیویتی است (ترک اکتیویتی لزوماً به معنی خارج شدن (destroy) از اکتیویتی نیست). اینجا جایی است که معمولاً باید تغییرات مهم مانند قطع موزیک، اجرا شود (به این خاطر که کاربر ممکن است برنگردد).

چندین متد پاسخگویی دیگر نیز وجود دارد که شما میتوانید از آنها در اکتیویتی استفاده کنید تا زمانیکه یکدفعه با توقف (unexpected interruptions) روبرو شدید، بتوانید آن حالت را مدریت کنید. تمامی متدهای پاسخگویی در ادامه این مبحث و در بخش “مدریت چرخه حیات اکتیویتی” مورد بررسی قرار خواهند گرفت.



اجرای واسط کاربری (user interface)

واسط کاربری در یک اکتیویتی از مجموعه ای از view ها تشکیل میشود (یا آبجکت هایی از این کلاس). هر view محیط مستطیل شکل خودش را در داخل اکتیویتی کنترل میکند و میتواند به درخواست کاربر پاسخ دهد. بعنوان مثال، یک view ممکن است دکمه ای (button) باشد که وقتی کاربر آنرا لمس کرد، یک عملی را اجرا کند.

اندروید بصورت پیش فرض چندین و چند view را آماده کرده است تا در طراحی واسط کاربری مورد استفاده قرار گیرد. ویدجت ها (Widgets)، view هایی هستند که شکل گرافیکی دارند و قادر به پاسخگویی به کاربر می باشند، مانند، button, text field, checkbox و یا تنها یک تصویر. پوسته ها (Layouts)، view هایی هستند که از کلاس ViewGroup مشتق میشوند که نحوه قرار گیری view ها در پوسته را مشخص میکنند. مثلاً view ها بصورت خطی پشت سر هم قرار بگیرند (linear layout)، بصورت جدولی قرار بگیرند (grid layout) و یا نسبت به هم قرار بگیرند (relative layout). شما میتوانید با ساخت یک زیر کلاس از View و ViewGroup ویدجت مورد نیاز خودتان را بسازید و در اکتیویتی از آن استفاده کنید.

معمول تریت راه به منظور طراحی پوسته و قرار دادن view ها در آن، استفاده از XML است که بعنوان منبع (resource) در برنامه قرار خواهد گرفت. با استفاده از دستور ()setContentView میتوانید یک پوسته را بعنوان واسط کاربری معرفی کنید. شما همچنین میتوانید در کد برنامه هم یک view بسازید و با قرار دادن آن در ViewGroup از آن استفاده کنید. سپس ViewGroup را با استفاده از ()setContentView بعنوان واسط کاربری معرفی کنید.

asif1358
سه شنبه 03 آبان 1390, 20:32 عصر
ادامه ندارد!!!!!!!!!!