Jetpack Compose Academy · पाठ

DisposableEffect और Cleanup

resources को सुरक्षित रूप से register और release कीजिए।

पाठ 3, कुल 4 में से13 चरण

DisposableEffect और Cleanup, CoddyKit पर Jetpack Compose Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Jetpack Compose Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Jetpack Compose Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

सफ़ाई कब आवश्यक है

कुछ सेटअप के साथ उससे मेल खाती सफ़ाई आवश्यक होती है: श्रोता पंजीकृत करना, सेंसर खोलना या जीवनचक्र पर नज़र रखना। इसके लिए DisposableEffect का उपयोग करें।

सेटअप के साथ onDispose

एक DisposableEffect सेटअप कोड चलाता है और इसका अंत onDispose ब्लॉक से होना आवश्यक है। यह ब्लॉक तब चलता है जब प्रभाव हट जाता है या इसकी कुंजी बदल जाती है। 🧹

DisposableEffect(Unit) {
    sensor.start()
    onDispose { sensor.stop() }
}

onDispose आवश्यक है

हर DisposableEffect को अपने अंतिम कथन के रूप में onDispose लौटाना आवश्यक है। कंपाइलर इसे अनिवार्य बनाता है, ताकि आप संसाधनों को जारी करना कभी न भूलें।

कुंजियाँ पहले की तरह काम करती हैं

LaunchedEffect की तरह ही, बदली हुई key पुराने प्रभाव को समाप्त कर देती है (onDispose चलाकर) और नए मान के साथ नया प्रभाव सेट करती है।

DisposableEffect(roomId) {
    chat.join(roomId)
    onDispose { chat.leave(roomId) }
}

पंजीकरण और अपंजीकरण

इसका सामान्य उपयोग कॉलबैक या ब्रॉडकास्ट रिसीवर के लिए होता है: सेटअप के दौरान इसे register करें और रिसाव से बचने के लिए onDispose के अंदर इसका अपंजीकरण करें।

DisposableEffect(Unit) {
    val cb = Listener()
    api.add(cb)
    onDispose { api.remove(cb) }
}

लाइफ़साइकल का निरीक्षण करें

आप सेटअप के दौरान एक LifecycleObserver जोड़ सकते हैं और निपटान के समय उसे हटा सकते हैं। इससे लाइफ़साइकल का तर्क एक ही Composable तक सीमित रहता है।

DisposableEffect(lifecycleOwner) {
    lifecycle.addObserver(obs)
    onDispose { lifecycle.removeObserver(obs) }
}

LaunchedEffect क्यों नहीं

LaunchedEffect अपने कॉरूटीन को रद्द कर देता है, लेकिन मनमाना cleanup नहीं चला सकता। जब आपको सममित रूप से वापस करने वाला चरण चाहिए, तब DisposableEffect सही उपकरण है।

इसके अंदर निलंबित फ़ंक्शन नहीं

DisposableEffect ब्लॉक कोई कॉरूटीन नहीं है, इसलिए आप यहाँ सीधे suspend फ़ंक्शन नहीं बुला सकते। इसका उपयोग साधारण सेटअप और समाप्ति के लिए करें।

पुनः आरंभ से पहले सफ़ाई चलती है

यदि कुंजी बदलती है, तो नया सेटअप होने से पहले onDispose चलता है। पुराने संसाधन पहले जारी कर दिए जाते हैं, इसलिए एक ही चीज़ दो बार पंजीकृत नहीं होती।

स्क्रीन छोड़ने पर सफ़ाई हो जाती है

जब Composable पूरी तरह composition से हट जाता है, तब onDispose अंतिम बार चलता है। यही गारंटी संसाधनों के रिसाव को रोकती है।

सेंसर सदस्यता का उदाहरण

सेटअप में सुनना शुरू करें, हैंडल को सहेजें और onDispose में उसे रोक दें। यह प्रभाव संसाधन के जीवनकाल को Composable के जीवनकाल के अनुरूप रखता है।

DisposableEffect(Unit) {
    val sub = location.subscribe()
    onDispose { sub.cancel() }
}

त्वरित जाँच

DisposableEffect को विशिष्ट बनाने वाली बात पर ध्यान दें।

पुनरावलोकन: DisposableEffect

बहुत बढ़िया! DisposableEffect सेटअप को आवश्यक onDispose के साथ जोड़ता है। कुंजी बदलने या Composable के हटने पर यह सफ़ाई चलाता है और संसाधनों को रिसाव-मुक्त रखता है। 🧹

शुरुआत निःशुल्क

एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “DisposableEffect और Cleanup” पाठ निःशुल्क है?

हाँ—“DisposableEffect और Cleanup” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Jetpack Compose Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Jetpack Compose Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“DisposableEffect और Cleanup” में मैं क्या सीखूँगा?

resources को सुरक्षित रूप से register और release कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Jetpack Compose Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Jetpack Compose Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Jetpack Compose Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“DisposableEffect और Cleanup” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Jetpack Compose Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Jetpack Compose Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Coroutines के लिए LaunchedEffect
  2. Events के लिए rememberCoroutineScope
  3. DisposableEffect और Cleanup
  4. derivedStateOf और snapshotFlow
← Jetpack Compose Academy पर वापस जाएँ