0Pricing
Android Academy · درس

دورة حياة Android

افهم دورتي حياة النشاط والتركيب

دورة حياة Android درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 4 دروس في المجموع.

ما هي دورة الحياة؟

يمر كل Activity في Android بسلسلة من الحالات أثناء فتح المستخدم لتطبيقك ومغادرته والعودة إليه. تُسمى هذه السلسلة دورة الحياة.

يسمح لك فهمها ببدء العمل وإيقافه في الأوقات المناسبة.

الاستدعاءات الأساسية لـ Activity

تُنفَّذ استدعاءات دورة حياة Activity التقليدية بالترتيب التالي:

  • onCreate — يجري إنشاء Activity.
  • onStart — تصبح مرئية.
  • onResume — تكون في المقدمة وقابلة للتفاعل.
  • onPause / onStop / onDestroy — عند المغادرة.

تدفق نموذجي

فتح التطبيق: onCreate → onStart → onResume.

الضغط على زر الشاشة الرئيسية: onPause → onStop.

العودة: onRestart → onStart → onResume.

حالات دورة الحياة في مقابل الأحداث

تمثّل مكتبة Lifecycle في Jetpack ذلك باستخدام حالات (CREATED وSTARTED وRESUMED وDESTROYED) وأحداث (ON_CREATE وON_START و...).

يمكن للمكوّنات مراقبة هذه الحالات والأحداث بدلًا من تجاوز الاستدعاءات الأولية.

LifecycleOwner

تُعد Activities وFragments ومضيفو Compose من نوع LifecycleOwners. وهي تتيح كائن Lifecycle الذي يمكن للمكوّنات الأخرى مراقبته.

val owner: LifecycleOwner = this // an Activity
val lifecycle = owner.lifecycle

لماذا يهم ذلك بالنسبة إلى الموارد؟

ينبغي أن تظل موارد كثيرة نشطة فقط أثناء ظهور الشاشة:

  • تحديثات الموقع.
  • مستمعو المستشعرات.
  • جلسات الكاميرا.

ابدأ تشغيلها في onStart/onResume وأوقفها في onStop/onPause لتوفير البطارية وتجنّب تسرّبات الذاكرة.

دورة الحياة في Jetpack Compose

لا تحتوي Composables على استدعاءات Activity. بل لها دورة حياة للتركيب: تدخل في التركيب، ويُعاد تركيبها، ثم تغادره في النهاية.

التفاعل مع التركيب باستخدام DisposableEffect

ينفّذ DisposableEffect إعداد الموارد عند دخول Composable في التركيب، وينفّذ التنظيف عند مغادرتها.

@Composable
fun Screen() {
    DisposableEffect(Unit) {
        // setup, e.g. register listener
        onDispose {
            // cleanup when leaving composition
        }
    }
}

مراقبة دورة الحياة الفعلية في Compose

للتفاعل مع أحداث دورة حياة Activity الفعلية من Composable، راقب LifecycleOwner باستخدام DefaultLifecycleObserver.

@Composable
fun OnResume(onResume: () -> Unit) {
    val owner = LocalLifecycleOwner.current
    DisposableEffect(owner) {
        val obs = object : DefaultLifecycleObserver {
            override fun onResume(o: LifecycleOwner) = onResume()
        }
        owner.lifecycle.addObserver(obs)
        onDispose { owner.lifecycle.removeObserver(obs) }
    }
}

ViewModel ودورة الحياة

تذكّر: يستمر ViewModel بعد انتهاء حالات دورة الحياة الفردية مثل onStart/onStop. ولا يُزال إلا عند زوال المالك نهائيًا. ولهذا تحديدًا يكون الاحتفاظ بالحالة فيه آمنًا.

جمع الأجزاء معًا

تتصف الشاشة جيدة التنظيم بما يلي:

  • الاحتفاظ بالحالة الدائمة في ViewModel.
  • بدء الموارد التي لا تكون مطلوبة إلا أثناء الظهور وإيقافها مع مراعاة دورة الحياة.
  • جمع التدفقات فقط عندما تكون واجهة المستخدم في حالة STARTED على الأقل (في الدرس التالي).

تحقق سريع

اختبر معرفتك بدورة الحياة.

مراجعة

لقد تعلّمت ما يلي:

  • تمر Activities بحالات CREATED وSTARTED وRESUMED وDESTROYED.
  • لدى Compose دورة حياة تركيب خاصة به، وتتم معالجتها عبر DisposableEffect.
  • راقب LifecycleOwner للتفاعل مع أحداث دورة الحياة الفعلية.
  • تستمر ViewModels عمدًا بعد هذه الحالات.

الأسئلة الشائعة

هل درس «دورة حياة Android» مجاني؟

نعم — نص درس «دورة حياة Android» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 4 دروس في المجموع.

ماذا ستتعلم في «دورة حياة Android»؟

افهم دورتي حياة النشاط والتركيب تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟

لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «دورة حياة Android»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟

نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. لماذا نستخدم ViewModel؟
  2. كشف الحالة من ViewModel
  3. دورة حياة Android
  4. collectAsStateWithLifecycle
← العودة إلى Android Academy