collectAsStateWithLifecycle
Compose में ViewModel state को सुरक्षित रूप से observe कीजिए।
collectAsStateWithLifecycle, CoddyKit पर Jetpack Compose Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Jetpack Compose Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Jetpack Compose Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Compose में Flow को देखना
आपका ViewModel स्थिति को एक Flow के रूप में प्रदर्शित करता है, और आपके Composable को उस स्ट्रीम को ऐसे मान में बदलना होता है जिसे Compose पढ़ और उस पर प्रतिक्रिया कर सके।
लाइफ़साइकल के अनुसार सही तरीका
स्क्रीन के लाइफ़साइकल का सम्मान करते हुए किसी StateFlow को Compose स्थिति में एकत्र करने के लिए collectAsStateWithLifecycle() का उपयोग करें। 🔋
val ui by vm.state.collectAsStateWithLifecycle()collectAsState क्यों नहीं
साधारण collectAsState() ऐप के पृष्ठभूमि में होने पर भी एकत्र करना जारी रखता है, जिससे काम व्यर्थ होता है। लाइफ़साइकल वाला संस्करण इसके बजाय रुक जाता है।
पृष्ठभूमि में रुक जाता है
जब आपकी स्क्रीन रुकती है, तो एकत्र करना भी रुक जाता है; और जब वह अग्रभूमि में लौटती है, तो एकत्र करना फिर शुरू हो जाता है। इससे बैटरी बचती है और निरर्थक अपडेट से बचा जाता है।
परिणाम पढ़ना
यह कॉल एक State लौटाती है, जिसे आप by से पढ़ते हैं। इससे आपको एक सामान्य मान मिलता है, जो हर बार Flow से नया मान आने पर पुनर्संयोजन शुरू करता है।
val ui by vm.state.collectAsStateWithLifecycle()
Text(ui.title)निर्भरता जोड़ें
यह सहायक रनटाइम आर्टिफ़ैक्ट में मौजूद है। lifecycle-runtime-compose जोड़ें, ताकि यह फ़ंक्शन आपके Composable में उपलब्ध हो।
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.0")न्यूनतम स्थिति चुनना
डिफ़ॉल्ट रूप से एकत्र करना तब सक्रिय रहता है जब स्थिति कम-से-कम STARTED हो। आप सीमा कम कर सकते हैं, लेकिन STARTED सुरक्षित और अनुशंसित विकल्प है।
StateFlow के साथ काम करता है
यह StateFlow के साथ विशेष रूप से उपयोगी है, क्योंकि उसमें हमेशा वर्तमान मान रहता है। इसलिए स्क्रीन दिखाई देते ही उसके पास दिखाने के लिए कुछ होता है।
स्थिति के आधार पर शाखा चुनें
एकत्र करने के बाद UiState के आधार पर लोड हो रही स्थिति, सफलता या त्रुटि रेंडर करें। यह सब आपके ViewModel से आए नवीनतम मान से संचालित होता है।
if (ui.isLoading) Spinner() else Content(ui.items)मैन्युअल एकत्र करने से अधिक सुरक्षित
यह आपको एकत्र करना मैन्युअल रूप से शुरू और रद्द करने से मुक्त करता है। सहायक आपके लिए इस काम को कंपोज़िशन और लाइफ़साइकल से जोड़ देता है। ✨
आधुनिक डिफ़ॉल्ट तरीका
नई Compose स्क्रीन के लिए collectAsStateWithLifecycle() को ViewModel की स्थिति को सुरक्षित और कुशलता से देखने का अनुशंसित तरीका माना जाता है।
त्वरित जाँच
जाँचें कि लाइफ़साइकल के अनुसार काम करने वाले संग्राहक को प्राथमिकता क्यों दी जाती है।
पुनरावृत्ति
collectAsStateWithLifecycle() से ViewModel की स्थिति देखें: यह StateFlow को Compose स्थिति में एकत्र करता है, पृष्ठभूमि में रुक जाता है और आधुनिक डिफ़ॉल्ट तरीका है।
एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “collectAsStateWithLifecycle” पाठ निःशुल्क है?
हाँ—“collectAsStateWithLifecycle” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Jetpack Compose Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Jetpack Compose Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“collectAsStateWithLifecycle” में मैं क्या सीखूँगा?
Compose में ViewModel state को सुरक्षित रूप से observe कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Jetpack Compose Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Jetpack Compose Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Jetpack Compose Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“collectAsStateWithLifecycle” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Jetpack Compose Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Jetpack Compose Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- ViewModel rotation के बाद भी क्यों बना रहता है
- Composable में viewModel()
- UiState Data Class का modeling
- collectAsStateWithLifecycle