آموزش برنامه نویسی اندروید با اندروید استودیو (بخش دهم: مثالی از چرخه حیات یک Activity)

استاندارد

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

onCreate(), onStart(), onResume(), OnPause(), onStop(),onRestart(), onDestroy().

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

android-activity-lifecycle-gsm-developers

حال می خواهیم با ارائه مثالی عملی، این چرخه حیات را به شما نشان دهیم.

برای این کار، در اکتیویتی اصلی، یک برنامه می نویسیم که توابع موجود در 7 حالت چرخه حیات Activity، را با یک یادداشت (log) به صورت خروجی به ما نشان دهد.

به عنوان مثال فرض کنید که تابعی بدین صورت برای حالت ()onStart ایجاد می کنیم. وقتی Activity برنامه ی ما در این حالت باشد، با یک یادداشت این موضوع را به ما نشان خواهد داد.

protected void onStart() {
        super.onStart();
        Log.i(My_TAG,"onStart");
    }

اگر در مورد کد بالا و نحوه ی ایجاد حالت ()onStart، برایتان سوال پیش آمده است، باید بگویم نحوه ی ایجاد حالت های چرخه حیات Activity، در بخش هشتم آموزش داده شد. ولی نگران نباشید، این ها همان کدهایی که در بخش هشتم هستند، می باشند ولی به صورتی ساده تر! در واقع برای نوشتن تابع وضعیت چرخه حیات، تنها کافی است کدی به صورت ()Super.Unknown را (به جای Unknown می توانید وضعیت چرخه حیات را بنویسید) در در تابعی مربوط به همان وضعیت بنویسیم. (همانند مثال بالا)

حال کدهای زیر را در فایل جاوای اصلی برنامه (MainActivity) که در پوشه ی Java می باشد، مانند عکس کپی می کنیم.

android-studio-beginners-gsm-developers-16

@Override
    protected void onStart() {
        super.onStart();
        Log.i(My_TAG,"onStart");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.i(My_TAG,"onPause");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.i(My_TAG,"onResume");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.i(My_TAG,"onStop");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(My_TAG,"onDestroy");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(My_TAG,"onRestart");
    }

برای نشان دادن یادداشت (Log)، باید کتابخانه ی مخصوص این کار را به برنامه اضافه کنیم.

برای اضافه کردن کتابخانه مورد نظر از کد زیر استفاده نمایید.

import android.util.Log;

کسانی که نمی دانند این کتابخانه را چطور به برنامه اضافه کنند، عکس زیر را مشاهده نمایند.

android-studio-beginners-gsm-developers-17

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

برای نوشتن این پیام ابتدا خط زیر را به برنامه و بالای تابع ()onCreate اضافه کنید. در این صورت با چاپ خروجی، نوشته ی ما هم نشان داده می شود.

private  static final  String My_TAG = "Gsm_Learning_Message:";

برنامه ی ما آماده ی اجراست. از تب Run، قسمت Run app را انتخاب می کنیم.

android-studio-beginners-gsm-developers-18

در قسمت بعدی از ما دستگاه اندرویدی شبیه ساز خواسته می شود که ما نکسوس 5 را قبلا برای این کار انتخاب کرده ایم.

android-studio-beginners-gsm-developers-19

پس از آن که دستگاه شبیه ساز (در اینجا نکسوس 5)، برنامه نوشته شده ی ما را اجرا کرد باید از قسمت Logcat ، یادداشت ها (logهایی) که نوشته بودیم نشان داده شود. این موضوع نشان دهنده ی اینست که در هر لحظه، اکتیویتی ما در کدام چرخه حیات خود می باشد. برای آوردن LogCat می توانید از کلید های ترکیبی 6 + Alt استفاده نمایید.

android-studio-beginners-gsm-developers-21

خب برنامه اجرا می شود و ما در قسمت Logcat تغییراتی شبیه به زیر را مشاهده می کنیم.

مشاهده می کنید که وقتی برنامه اجرا می شود، اکتیویتی ما به حالت onStart و سپس onResume می رود.

android-studio-beginners-gsm-developers-22

با زدن دکمه Home، از برنامه خارج می شویم و سپس در قسمت Logcat تغییرات زیر را مشاهده می کنیم.

android-studio-beginners-gsm-developers-23

همان طور که انتظار می رفت، Activity ما به حالت های onPause و onStop می رود.

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