توفّر مكتبة Lifecycle واجهات برمجة التطبيقات المدمَجة التي تتيح لك الدمج مع Jetpack. إنشاء. تشمل واجهات برمجة التطبيقات الأساسية ما يلي:
- التدفقات لتاريخ
Lifecycle.State
الحالي. LifecycleEffects
الذي يتيح لك تنفيذ حظر استنادًا إلى فئة معيّنةLifecycle.Event
توفر عمليات الدمج هذه عناصر ملائمة لإدارة مراحل النشاط ضمن إنشاء التسلسل الهرمي ويوضّح هذا المستند طريقة استخدام هذه البطاقات في تطبيقك.
جمع بيانات حالة دورة الحياة باستخدام التدفقات
تعرض "رحلة المستخدِم" السمة currentStateFlow
التي توفّر القيمة الحالية
Lifecycle.State
في صورة StateFlow
بلغة Kotlin. يمكنك الحصول على Flow
باسم
State
ويتيح ذلك لتطبيقك قراءة التغييرات في "رحلة المستخدِم" أثناء
المقطوعة الموسيقية.
val lifecycleOwner = LocalLifecycleOwner.current
val stateFlow = lifecycleOwner.lifecycle.currentStateFlow
…
val currentLifecycleState by stateFlow.collectAsState()
يمكن الوصول إلى المثال السابق باستخدام وحدة lifecycle-common
. تشير رسالة الأشكال البيانية
تتوفّر طريقة currentStateAsState()
في lifecycle-runtime-compose
.
التي تتيح لك قراءة حالة مراحل النشاط الحالية بسهولة
سطر واحد. ويوضح المثال التالي هذا:
val lifecycleOwner = LocalLifecycleOwner.current
val currentLifecycleState = lifecycleOwner.lifecycle.currentStateAsState()
تشغيل الرمز في أحداث مراحل النشاط
وهناك أيضًا LifecycleEffects
التي تتيح لك تنفيذ حظر عندما يتم حظر
تحدث الحالة Lifecycle.Event
.
LifecycleEventEffect(Lifecycle.Event.ON_START) {
// do something here
}
بالإضافة إلى LifecycleEventEffect
، يمكنك أيضًا استخدام
LifecycleStartEffect
وLifecycleResumeEffect
ترتبط واجهات برمجة التطبيقات هذه
أحداث محددة. وتوفّر هذه المؤسسات أيضًا حظرًا إضافيًا في الوحدة الأساسية.
تساعد في إزالة أي رمز برمجي قد يكون الحدث قد بدأه.
LifecycleStartEffect
يتشابه LifecycleStartEffect
مع LifecycleEffect
، ولكنه يتم تشغيله فقط.
في Lifecycle.Event.ON_START
حدث يقبل أيضًا المفاتيح التي تعمل مثل المفاتيح الأخرى
إنشاء المفاتيح. عندما يتغير المفتاح، يتم تشغيل الحظر مجددًا.
وعندما يكون هناك حدث Lifecycle.Event.ON_STOP
أو يخرج التأثير من التركيبة،
ينفذ كتلة onStopOrDispose
. يسمح هذا بتنظيف أي عمل
كانت جزءًا من كتلة البداية.
LifecycleStartEffect {
// ON_START code is executed here
onStopOrDispose {
// do any needed clean up here
}
}
تأثير استئناف دورة الحياة
تعمل LifecycleResumeEffect
بالطريقة نفسها التي يعمل بها
LifecycleStartedEffect
، ولكن يتم تنفيذه على Lifecycle.Event.ON_RESUME
.
الحدث بدلاً من ذلك. ويتم أيضًا توفير كتلة onPauseOrDispose
تؤدي إلى تنفيذ
تنظيف البيانات.
LifecycleResumeEffect {
// ON_RESUME code is executed here
onPauseOrDispose {
// do any needed clean up here
}
}