اکتیویتی ها در اندروید چیزی به جز صفحه هایی که در اپلیکیشن مشاهده میکنید نیستند. می توانید آنها را با پنجره ها در ویندوز مقایسه کنید. اگر با زبان هایی مثل C و C++ کار کرده باشید حتما دیده اید که این برنامه ها همیشه از تابع main() شرورع میشوند. دقیقا مانند همین مثال برنامه های اندروید هم با اکتیویتی شروع میشوند.
هر اکتیویتی یک چرخه عمری دارد که با یک سری تابع شروع و با یک سری تابع خاتمه میابد. این چرخه ها عمر خیلی به درد ما میخورند. چرا که میتوانیم با توجه به رفتار یک اکتیویتی کار خاصی را در اپلیکیشن اندروید انجام دهیم و تصمیم های مهمی بگیریم. مثلا میخواهیم وقتی اکتیویتی به پس زمینه رفت حافظه را آزاد کنیم یا وقتی اکتیویتی ظاهر شد ببینیم آیا ارتباط اینترنتی وجود دارد یا خیر.
چرخه عمر هر اکتیویتی را میتوانید در زیر مشاهده کنید:
چرخه هر اکتیویتی از یکسری رخداد های زیر تشکیل شده است. اما شما نیاز ندارید که همه ی متد ها را پیاده سازی کنید. بلکه بسیار مهم است که کارکرد آنها را بدانید.
متد | توضیحات |
---|---|
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 پرینت گرفتیم را مشاهده کنید.
ترتیب چاپ شده در لاگ اندروید استودیو ، ترتیب صدا زده شدن متدهای چرخه عمر اکتیویتی را نشان میدهد.
برای اینکه همه بقیه ی رویدادها را هم مشاهده کنید اپلیکیشن را باز و بسته کنید.
دانلود سورس این پروژهپسورد فایل زیپ : androidbank.ir