جلسه چهارم – اکتیویتی ها در اندروید و چرخه عمر آنها

اکتیویتی ها در اندروید چیزی به جز صفحه هایی که در اپلیکیشن مشاهده میکنید نیستند. می توانید آنها را با پنجره ها در ویندوز مقایسه کنید. اگر با زبان هایی مثل C و C++ کار کرده باشید حتما دیده اید که این برنامه ها همیشه از تابع main() شرورع میشوند. دقیقا مانند همین مثال برنامه های اندروید هم با اکتیویتی شروع میشوند.

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

چرخه عمر هر اکتیویتی را میتوانید در زیر مشاهده کنید:

 

activity

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

 

متد توضیحات
onCreate() اولین متدی است که صدا زده میشود هنگامی که اکتیویتی میخواهد ساخته شود.
onStart() وقتی صدا زده میشود که اکتیویتی برای کاربر نمایش داده میشود.
onResume() وقتی صدا زده میشود که کاربر در حال تعامل با اپلیکیشن میباشد.
onPause() وقتی صدا زده میشود که اکتیویتی فعلا غیر فعال شود و اکتیویتی جدید جایگزین شود.
onStop() وقتی صدا زده میشود که اکتیویتی دیگر قابل مشاهده برای کاربر نیست.
onDestroy() قبل از اینکه اکتیویتی توسط سیستم عامل اندروید نابود شود صدا زده میشود.
onRestart() وقتی صدا زده میشود که اکتیویتی دوباره شروع به کار کند بعد از اینکه متوقف شده بود.

مثال:

در این مثال شما چرخه عمر یک اکتیویتی را مشاهده خواهید کرد.

اندروید استودیو را باز کنید و کدهای زیر را را در آن کپی کنید:

در فایل MainActivity.java کدهای زیر را کپی کنید و در نظر داشته باشید که برای اینکه چرخه عمر قابل مشاهده باشد ما تمامی مراحل آن را در Log به وسیله تابع Log.d() پرینت کرده ایم. برای مشاهده لاگ تب Android Monitor را از پایین صفحه باز کنید.

package ir.androidbank.myapplication;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

    String msg = "Activity Lifecycle";

    /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        Log.d(msg, "The onCreate() event");
    }

    /** Called when the activity is about to become visible. */
    @Override
    protected void onStart() {
        super.onStart();
        Log.d(msg, "The onStart() event");
    }

    /** Called when the activity has become visible. */
    @Override
    protected void onResume() {
        super.onResume();
        Log.d(msg, "The onResume() event");
    }

    /** Called when another activity is taking focus. */
    @Override
    protected void onPause() {
        super.onPause();
        Log.d(msg, "The onPause() event");
    }

    /** Called when the activity is no longer visible. */
    @Override
    protected void onStop() {
        super.onStop();
        Log.d(msg, "The onStop() event");
    }

    /** Called just before the activity is destroyed. */
    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(msg, "The onDestroy() event");
    }
}

اپلیکیشن را روی اندروید اجرا کنید و در قسمت جستجوی Android Monitor تایپ کنید: Lifecycle تا عباراتی را که با Log پرینت گرفتیم را مشاهده کنید.

android-studio24

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

برای اینکه همه بقیه ی رویدادها را هم مشاهده کنید اپلیکیشن را باز و بسته کنید.

دانلود سورس این پروژه

پسورد فایل زیپ : androidbank.ir

 

درباره ی امیر حسین

این پست هم توصیه می شود:

جلسه دوم – ساخت یک پروژه ساده با اندروید استودیو

در جلسه قصد داریم تا با یک آموزش پروژه محور شما را با محیط اندروید …

دیدگاهتان را بنویسید

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