Compose की सुविधा के साथ लाइफ़साइकल को इंटिग्रेट करना

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
  }
}