دوشنبه, ۲۸ بهمن ۱۳۹۲، ۰۸:۰۰ ب.ظ
دوره حیات Activity در اندروید
Activity ها یکی از مهمترین عناصر و شناخته ترین عناصر در برنامه نویسی اندروید است.
اولین گزینه ای هم که در برخورد با محیط های برنامه نویسی اندروید با آن مواجه می شوید Activity است.
شاید خیلی چیز ساده ای باشه ولی همین موضوع میتونه وظعیت شغلی شما رو در یک مصاحبه کاری عوض کنه.دیدم که میگم ... :D
به تصویر زیر دقت کنید :
تصویر بالا دوره حیات یک Activity را نشان می دهد.
Activity ها در سیستم به صورت یک پشته یا Stack مدیریت می شوند. مثلا وقتی که یک Activity رو صدا می زنید، در بالای پشته قرار می گیرد.
دوره حیات یک Activity با توابع زیر شناخته می شوند:
() On Create :
زمانی صدا زده می شود که یک Activity برای اولین بار ساخته می شود. درون این تابعی جایی است که شما بیشتر تنظیمات و کد هاتون نوشته می شه. View ساخته می شود ، لیست ها پر می شود و ... .
خلاصه هر چیزی که یک بار باید ساخته بشه و یا مقدار دهی بشه در این تابع است.
()On ReStart :
اگر Activity شما stop شده باشد با صدا زدن این تابع دوباره به کارش می اندازیم و مواردی که لازمه در شروع دوباره این Activity انجام بشه این جا صدا می شه.
()On Start:
زمانی صدا زده می شود که Activity در حال Visible و یا قابل مشاهده برای کاربر می شود.با ()OnResume دنبال می شه اگر قرار است که در بالای پشته قرار بگیره و با ()On Stoped اگر قرار است hidden و یا پنهان شود.
()On Resume:
زمانی صدا زده می شود که Activity قرار است دوباره در تعامل با کاربر باشد.و کاربر ورودی هایی را در Activity وارد نماید. معمولا با ()On Pause همراه می شود.
()OnPause:
زمانی استفاده می شود که یک Activity به کنار رانده می شود تا یک Activity دیگر آغاز به کار کند.ولی هنوز نابود نشده است.
و برای برگشتن از Activity ،B به این Activity از تابع ()OnResume استفاده می شود.
()On Stop :
زمانی صدا زده می شود که Activity دیگر نیازی نیست قابل مشاهده باشد . دیگر کاری نداریم باهاش.
در ادامه این تابع یا ()OnRestart و یا ()OnDestroy استفاده می شه.
*** دقت بشه که ممکن است اصلا از این تابع استفاده نشه و این بستگی به میزان حافظه درگیر داره.
()OnDestroy:
آخرین تابعی است که قبل از نابودی Activity صدا زده می شود.
گاهی از ()Finish استفاده می شه.
*Activity نمونه جهت درک دوره حیات Activity ها.
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
String tag = "LifeCycleEvents";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(tag, "In the onCreate() event");
}
public void onStart()
{
super.onStart();
Log.d(tag, "In the onStart() event");
}
public void onRestart()
{
super.onRestart();
Log.d(tag, "In the onRestart() event");
}
public void onResume()
{
super.onResume();
Log.d(tag, "In the onResume() event");
}
public void onPause()
{
super.onPause();
Log.d(tag, "In the onPause() event");
}
public void onStop()
{
super.onStop();
Log.d(tag, "In the onStop() event");
}
public void onDestroy()
{
super.onDestroy();
Log.d(tag, "In the onDestroy() event");
}
}
کسب اطلاعات بیشتر :