Lifecycle लाइब्रेरी में पहले से मौजूद एपीआई होते हैं, जो आपको Jetpack के साथ इंटिग्रेट करने देते हैं लिखें. Key API में ये शामिल हैं:
- मौजूदा
Lifecycle.State
के लिए फ़्लो करता है. LifecycleEffects
, जिससे आप किसी खास समयावधि को ब्लॉक कर सकते हैंLifecycle.Event
.
ये इंटिग्रेशन, आसानी से इस्तेमाल किए जा सकने वाले हुक देते हैं. इनसे लाइफ़साइकल को मैनेज किया जा सकता है क्रम के हिसाब से लिखें. इस दस्तावेज़ में बताया गया है कि ऐप्लिकेशन में इनका इस्तेमाल कैसे किया जा सकता है.
फ़्लो के साथ लाइफ़साइकल की जानकारी का पता लगाएं
लाइफ़साइकल की मदद से, ऐसी currentStateFlow
प्रॉपर्टी देखी जा सकती है जो मौजूदा
Kotlin StateFlow
के तौर पर Lifecycle.State
. आपके पास Flow
को इस तरह इकट्ठा करने का विकल्प है
State
. इससे आपका ऐप्लिकेशन लाइफ़साइकल के दौरान हुए बदलावों को पढ़ सकता है
कंपोज़िशन.
val lifecycleOwner = LocalLifecycleOwner.current
val stateFlow = lifecycleOwner.lifecycle.currentStateFlow
…
val currentLifecycleState by stateFlow.collectAsState()
पिछले उदाहरण को lifecycle-common
मॉड्यूल का इस्तेमाल करके ऐक्सेस किया जा सकता है. कॉन्टेंट बनाने
lifecycle-runtime-compose
में currentStateAsState()
तरीका उपलब्ध है
मॉड्यूल की मदद से, लाइफ़साइकल की मौजूदा स्थिति को आसानी से पढ़ा जा सकता है
एकल पंक्ति. यह उदाहरण इसे दिखाता है:
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
}
}