menu

اکتیویتی ها (Activities) در اندروید

از اکتیویتی ها و چرخه اجرا بیشتر بدانید


یک اکتیویتی نشان دهنده یک صفحه نمایش تنها با یک رابط کاربری همانند یک پنجره یا قاب می باشد. یک اکتیویتی زیرکلاسی از کلاس "ContextThemeWrapper" است.

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

activities1

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

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

نمونه ای از چرخه اجرا

طبق آموزش ساخت اولین پروژه، یک پروژه جدید بسازید و فایل “MainActivity.java” را باز کنید. سپس همانند مثال زیر تمامی متدهای توضیح داده شده را می نویسیم. توجه داشته باشید برای فهم بیشتر چرخه اجرا، از دستور Log برای چاپ پیام مورد نظر استفاده می کنیم تا هنگام فراخوانی هر متد Log مربوط به آن چاپ گردد.

         
 package com.example.helloworld;

 import android.os.Bundle;
 import android.app.Activity;
 import android.util.Log;

 public class MainActivity extends Activity {
   String msg = "Android : ";
   
   
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Log.d(msg, "The onCreate() event");
   }

   
   @Override
   protected void onStart() {
      super.onStart();
      Log.d(msg, "The onStart() event");
   }

  
   @Override
   protected void onResume() {
      super.onResume();
      Log.d(msg, "The onResume() event");
   }

   
   @Override
   protected void onPause() {
      super.onPause();
      Log.d(msg, "The onPause() event");
   }

   
   @Override
   protected void onStop() {
      super.onStop();
      Log.d(msg, "The onStop() event");
   }

  
   @Override
   public void onDestroy() {
      super.onDestroy();
      Log.d(msg, "The onDestroy() event");
   }
 }         
          

پس از آن از پروژه خود Run گرفته و منتظر بمانید تا برروی شبیه ساز اجرا شود. ابزار “LogCat” خود را مشاهده نمایید و منتظر چاپ شدن آن ها شوید. پس از اجرای برنامه باید به ترتیب Log های مربوط به متدهای onCreate، onStart و onResume چاپ گردند.

activities2

با زدن دکمه تماس قرمز رنگ شبیه ساز، لاگ های مربوط به متدهای onPause و onStop چاپ می شوند. با زدن دکمه منو شبیه ساز، لاگ های مربوط به متدهای onStart و onResume چاپ شده و با زدن دکمه Back، لاگ های onPause، onStop و onDestroy چاپ می گردند.