امروز قصد داریم مبحث LifeCycle در اندروید یا همون چرخه حیات اکتیویتی در اندروید را به شما آموزش دهیم و همچنین اینکه چرخه حیات چند حالت دارد .
LifeCycle در اندروید (چرخه حیات در اندروید ) چیست ؟
ما برای اینکه نحوی کار اکتیویتی خودمون رو تعیین کنیم وبگوییم که در شرایط مختلف چگونه کار کند . از مفهم LifeCycle یا چرخه حیات استفاده میکنیم . یکسری متد ها و روش هایی وجود دارد که ما در شرایط مختلف از وضعیت Activity خودمون از آن ها استفاده میکنیم . برای مثال ما اگر یک اکتیویتی که با آن کار میشود را به یکباره از آن خارج شویم .
وقتی حرف از چرخه حیات اکتیویتی میشود یعنی حالت های مختلف در طول اجرا ، بستن و … برنامه هست .
هر هفته با یک مقاله دیگر از سری آموزش کاتلین در خدمت شما عزیزان هستیم .
حالت های مختلف چرخه حیات اکتیویتی در اندروید کدامند ؟
نکته مهم از مبحث چرخه حیات در اندروید که باید بدانید این هست که این چرخه به صورت کلی دارای 7 حالت میباشد . یعنی ما در حالت های مختلف اکتیویتی خودمون از متد های مخصوص به اون حالت استفاده میکنیم . و اما این هفت حالت به شکل زیر میباشد .
- OnCreate: این حالت برای موقعی هست که اکتیویتی ما ایجاد میشود .
- OnStart: برای موقعی هست که اکتیویتی من شروع به فعالیت خودش میکند.
- OnResums : این بخش اصول برای زمانی هست که ما در اکتیویتی خودمون فعالیتی انجام میدهیم یعنی بین کاربر و Activity تعامی وجود دارد.
- OnPause: فرض کنید من در صفحه اصلی خودم و در اکتیویتی 1 قرار دارم . و برای انجام فعالیتی به اکتیویتی 2 میروم و قصد دارم بعد چند لحظه به اکتیویتی 1 برگردم . در این زمان اکتیویتی 1 در حالت OnPause قرار می گیرد . یعنی اکتیویتی اول ما برای مدت کوتاهی مکث میکند ولی اگر مدت زمان برگشت ما طول بکشد این اکتیویتی به حالت OnStop میرود . و همچنین اگر ما در این مرحله با کمبود حافظه مواجه شویم که این مشکل به ندرت پیش می آید. وارد مرحله OnDestroy میشویم . ولی نکته ای دیگریهم وجود دارد آن هم این هست اگر شما در مرجله OnStop قرار داشته باشید اکتیوتی برای شما نشان داد نمیشود در اینجا اگر کاربر وارد اکتیویتی 1 شود متد OnRestart فراخوانی میشود .وبه حالت دوم و بعد از OnStart میرویم و از آنجا ادامه میدهیم .
زبان برنامه نویسی کاتلین بهتر گزینه برای برنامه نویسی اندروید میباشد .
پروژه :
من قصد دارم در یک پروژه نحوی کار با LifeCycle در اندروید را برای شما آموزش دهیم برای این کار ابتدا یک پروژه جدید در اندروید استودیو ایجاد کنید و نام دلخواهی برای آن قرار دهید . بعد از آن کاری که ما باید انجام دهیم این هست که کتابخانه لایف سایکل را به پروژه خودمون اضافه کنیم برای اینکار وارد سایت اندروید دولوپر شوید و کتابخانه های lifeCycle را که من در قسمت پایین نیز آورد ام به پروژه خودتون اضافه کنید .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
dependencies { def lifecycle_version = "2.5.0-rc01" def arch_version = "2.1.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version" // LiveData implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version" // Lifecycles only (without ViewModel or LiveData) implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" // Saved state module for ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version" // Annotation processor annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // alternately - if using Java8, use the following instead of lifecycle-compiler implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" // optional - helpers for implementing LifecycleOwner in a Service implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version" // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version" // optional - ReactiveStreams support for LiveData implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version" // optional - Test helpers for LiveData testImplementation "androidx.arch.core:core-testing:$arch_version" } |
بعد از اضافه کردن کتابخانه ها یک کلاس اضافه کنید که از LifecycleObserver ایمپلیمنت میشود و شما میتوانیداز حالت های 7 گانه که در قسمت بالا برای شما توضیح دادیم استفاده کنید .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import android.util.Log; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; public class LifeCycle implements LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) public void OnCreate() { Log.d("TAG", "Create"); } @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) public void OnDESTROY() { Log.d("TAG", "DESTROY"); } @OnLifecycleEvent(Lifecycle.Event.ON_STOP) public void OnStop() { Log.d("TAG", "Stop"); } } |
در مرحله بعد و بعد از کد های بالا وارد اکتیویتی خودتون بشوید وارد کد های زیر را وارد سازید .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { LifeCycle lifeCycle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lifeCycle = new LifeCycle(); lifeCycle.OnCreate(); } @Override protected void onDestroy() { super.onDestroy(); lifeCycle.OnDESTROY(); } @Override protected void onStop() { super.onStop(); lifeCycle.OnStop(); } |
خیلی خیلی ممنون
خلاصه و مفید
مرسی لطف دارید
خیلی ممنون خیلی به دردم خورد خلاصه و مفید بود .
مرسی لطف دارید
سلام خسته نباشید
لطف کنید در آینده مطالب تکیمیلی دربیاره LifeCycle در اندروید نیز بزارید ممنون میشم.
سلام
خسته نباشید
خیلی مفید بود
خیلی ممنون از مطالبتون بسیار مفید بود .
تا جایی که من سایت شما رو گشتم . اینجور برداشت کردم که در زمینه اندروید بخصوص زبان کاتلین تمامی مباحث رو بروز میکنید . من که دنبال یک منبع خوب برای آموزش کاتلین بودم خیلی استفاده کردم . دمتون گرم .