lifecycle یک Activity

همانطور که در پستهای قبلی به lifecycle یک activity اشاره کردم,طول عمر یک activity در واقع از زمان ایجاد آن activity تا زمان حذف آن activity توسط سیستم و یا کاربر ادامه دارد.activity به ازای کارهایی که کاربر با صفحه انجام می دهد ممکن است وضعیتش به وضعیت های مختلف تغییر کند.برای هر وضعیت یک callback داریم که می توانیم از callbackها برای انجام یک سری کارها استفاده کنیم.کد زیر پیاده سازی کننده تمام callback های مهم در lifecycle یک activity است.

public class ExampleActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // The activity is being created.
    }
    @Override
    protected void onStart() {
        super.onStart();
        // The activity is about to become visible.
    }
    @Override
    protected void onResume() {
        super.onResume();
        // The activity has become visible (it is now "resumed").
    }
    @Override
    protected void onPause() {
        super.onPause();
        // Another activity is taking focus (this activity is about to be "paused").
    }
    @Override
    protected void onStop() {
        super.onStop();
        // The activity is no longer visible (it is now "stopped")
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // The activity is about to be destroyed.
    }
}

همچنین شکل زیر نشان دهنده lifecycle یک activity  است.توجه کنید که مستطیل ها درواقع همان callbackهایی هستند که در کد بالا پیاده سازی کرده ایم.
activity-lifecycle

کل طول عمر یک activity بین متدهای onCreate() و onDestroy() خلاصه شده است.در متدها onCreate() ما باید کارهای اولیه مربوط به راه اندازی یک activity را انجام دهیم و همچنین در onDestroy() کارهای مربوط به آزاد سازی منابع را انجام دهیم.برای مثال اگر می خواهیم یک thread برای انجام عملیات دانلود یک فایل از اینترنت را اجرا کنیم باید آن را onCreate() اجرا کنیم و در onDestroy() آن thread را منوقف کنیم.
کل زمانی که کاربر می تواند activity را ببیند و با آن کار کند بین متدهای onStart() و onStop() خلاصه شده است.زمانی که onStop() صدا زده می شود activity دیگر برای کاربر قابل مشاهده نیست.
طول عمر زمانی کهactivity بالاتر از باقی activityها قرار دارد و فوکس بر روی آن است بین onResume() و onPause() است.onPause زمانی صدا زده می شود که مثلا دستگاه به خواب رفته یا یک دیالوگ باز شده است.برای این که ما به صورت مکرر ممکن است بین این دو وضعیت سوئیج کنیم بنابراین نیاز است کارهای سنگینی در این دو متد انجام ندهیم که موجب کندی نشود.

پاسخ دهید

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