Tasks and Back Stack

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

در سیستم اندروید مفهومی به اسم Task وجود دارد که در آن تعدادی activity وجود دارد.این activityها در یک stack نگهداری می شوند.زمانیکه کاربر یک برنامه را باز می کند ،سیستم اندروید در صورتیکه Task مربوطه وجود داشته باشد آن را دوباره اجرا می کند و در صورتیکه Taskی برای برنامه وجود نداشته باشد ،یک Task جدید خواهد ساخت.

توجه به این نکته ضروری است که به هیچ عنوان activity ها در stack خارج از push و pop  کردن arrange مجدد نمی شوند.

در عکس پایین شما فرایند افزودن و پاک شدن یک activity را در stack مشاهده می کنید:

diagram_backstack.png

زمانی که کاربر با زدن دکمه back تمام activity را از stack پاک کند و به صفحه خانه(Home screen)برگردد Task از بین خواهد رفت.

فرض کنید می خواهید دو برنامه a و b را اجرا می کنید.در این حالت با اجرا کردن برنامه a یک تسک برای آن ساخته می شود و در صورتیکه با استفاده از دکمه home  به صفحه خانه(Home screen) برگردید تسک a  در background قرار خواهد گرفت و تمام activityهای آن به وضعیت stopped تغییر وضعیت خواهند داد. حال اگر برنامه b را اجرا کنید یک تسک جدید ایجاد خواهد شد و این تسک در foreground قرار خواهد گرفت.

سیستم اندروید توانایی نگهداری تعداد زیادی task را در background دارد ولی توجه به این نکته لازم است که در صورتیکه سیستم اندروید نیاز داشته باشد، برای بازیابی فضای ram تعدادی از آن ها را ز بین ببرد.

نکته :امکان این وجود دارد که از یک activity  چندین instance در stack وجود داشته باشد.

diagram_multitasking

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *