توفّر مكتبة "رحلة المستخدِم" واجهات برمجة تطبيقات مدمَجة تتيح لك الدمج مع ميزة Compose في 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
حدث 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
}
}