मैं एंड्रॉइड के लिए नया हूं और मैंने शुरुआती लोगों के लिए एक पुस्तक पढ़ी जो कहा कि onSaveInstanceState(Bundle)
सिस्टम को आपके Activity
को पुनः प्राप्त करने से पहले कहा जाता है। मैंने इसे कुछ परीक्षण कोडों पर आजमाया और इसे गलत पाया। मैंने पाया कि onSaveInstanceState(Bundle)
को onPause()
के बाद हर बार बुलाया गया था। और इसका सिस्टम पुन: दावा के साथ कुछ लेना देना नहीं है। मुझे इसके बारे में बहुत यकीन नहीं है, इसलिए यह सवाल है: onSaveInstanceState(Bundle)
वास्तव में कब कहा जाता है?ऑनवेज़() के बाद बुलाए गए SaveInstanceState (बंडल) पर विधि है?
उत्तर
Android Documentation के अनुसार:
इसके अलावा, विधि
onSaveInstanceState(Bundle)
, इस तरह के एक पृष्ठभूमि राज्य में गतिविधि देते समय, आप दिए गए बंडल में अपनी गतिविधि में किसी भी गतिशील उदाहरण राज्य दूर बचाने के लिए अनुमति देने से पहले कहा जाता है बाद मेंonCreate(Bundle)
में प्राप्त किया जाना चाहिए यदि गतिविधि को फिर से बनाया जाना चाहिए। इस प्रक्रिया के जीवन चक्र को होस्ट करने वाली गतिविधियों से कैसे जुड़ा हुआ है, इस बारे में अधिक जानकारी के लिए प्रक्रिया लाइफसाइक्ल अनुभाग देखें। ध्यान दें किonSaveInstanceState(Bundle)
के बजायonPause()
में लगातार डेटा को सहेजना महत्वपूर्ण है क्योंकि उत्तरार्द्ध जीवन चक्र कॉलबैक का हिस्सा नहीं है, इसलिए इसके दस्तावेज़ में वर्णित हर स्थिति में नहीं कहा जाएगा।
हाँ onPause()
onSaveInstanceState(Bundle)
से पहले कहा जाता है। लेकिन onPause()
गतिविधि life cycle
आमतौर पर जब अपनी गतिविधि है जब आप डिवाइस अभिविन्यास तो बदल आप अपने manifest.xml
फ़ाइल में android:configChanges
टैग निर्दिष्ट नहीं किया है, तो onSaveInstanceState(Bundle)
कहा जाता है, उदाहरण के लिए फिर से बनाया जाता है की अपनी एक भाग के रूप में कहा जा गारंटी है।
मैं पिछले उत्तर से सहमत नहीं हूं।
Documentation के अनुसार:
तो कहा जाता है, इस विधि हो जाएगा onStop से पहले()। इस बारे में गारंटी देता है कि यह पहले से या बाद में होगा()।
एक महत्वपूर्ण नोट के रूप में, 'ऑनसेवस्टेंसस्टेट() 'को ऑन-ऑन()' से पहले बुलाया जा सकता है। यह इस तथ्य के कारण हो सकता है कि (समर्थन) मैं उपयोग कर रहा हूँ फ्रैगमेंट 'ViewPager' में है। उम्मीद है कि यह किसी और के लिए सहायक है। – Sufian
- 1. SaveInstanceState पर बंडल कहाँ सहेजा गया है?
- 2. SaveInstanceState() पर मेरे टुकड़े क्यों नहीं बुलाए जा रहे हैं?
- 3. ऑनसेज() में SaveInstanceState() बंडल को कैसे पुनर्प्राप्त करें?
- 4. एमओक ने बुलाए गए समय
- 5. popBackStack() saveInstanceState()
- 6. फ्रैगमेंट saveInstanceState अभिविन्यास परिवर्तन के बाद शून्य के रूप में आ रहा है
- 7. क्यूओब्जेक्ट विनाश के बाद बुलाए गए सिग्नल को क्यों नष्ट कर दिया गया है?
- 8. एंड्रॉइड: SaveInstanceState
- 9. java.lang.IllegalStateException: SaveInstanceState, FragmentTabHost
- 10. पायथन में ऑब्जेक्ट पर बुलाए गए किसी भी विधि को कैसे पकड़ें?
- 11. क्या थ्रेड.इल्ड() सिंक्रनाइज़ विधि के अंदर बुलाए जाने पर ऑब्जेक्ट पर लॉक खो देता है?
- 12. दुर्लभ मामलों में pthread_exit() pthread_detach() के बाद बुलाए जाने पर एसईजीवी क्यों करता है?
- 13. राइनोमोक्स - बुलाए गए कार्यों के पैरामीटर प्राप्त करना
- 14. बाद के बंडल पर देशी एक्सटेंशन पुनर्मूल्यांकन छोड़ना
- 15. ElapsedEventHandler द्वारा बुलाए गए फ़ंक्शन के पैरामीटर कैसे पास करें?
- 16. SaveInstanceState पर कस्टम क्लास का उदाहरण कैसे सहेजना है?
- 17. ऑनस्टार्ट के बाद रेस्टोर इंस्टेंसस्टेट पर क्यों नहीं है?
- 18. ब्लॉक के बिना बुलाए जाने पर प्रतिक्रिया क्या करती है?
- 19. क्या "ईएससी" पर रद्द AJAX के माध्यम से बुलाए गए PHP प्रक्रियाएं हैं?
- 20. एंड्रॉइड - IllegalStateException के कारण खत्म होने के बाद गतिविधि को नष्ट करने में असमर्थ: SaveInstanceState
- 21. rspec: कन्स्ट्रक्टर द्वारा बुलाए गए एक इंस्टेंस विधि को कैसे दबाया जाए?
- 22. एक्सकोड के साथ बंडल किए गए एलएलवीएम संस्करण क्या है?
- 23. एमवीसी 4 दृढ़ता से टाइप किए गए बंडल बंडल
- 24. किसी बुलाए गए फ़ाइल को त्रुटि से प्राप्त करना
- 25. नेटबीन्स आईडीई रचनाकारों में बुलाए गए तरीकों के बारे में चेतावनियां जारी नहीं कर रहा है
- 26. के बाद संकेत दिए गए
- 27. THREE.js: कॉलिंग लुकिंग के बाद विधि विधि
- 28. ओपनसीवी वेब अनुरोध से बुलाए जाने पर लटकती है
- 29. क्या वसंत से एक रेफ बीन पर एक विधि बुलाए जाने के परिणाम को इंजेक्ट करना संभव है?
- 30. सहेजे गए बंडल में ArrayList को सहेजनाInstanceState
आपको सक्रिय जीवन चक्र के बारे में पढ़ना चाहिए। यहां एक आरेख है: http://i.stack.imgur.com/EVuKo.png – dazito
धन्यवाद, डेज़ीटो। मुझे लगता है कि मुझे अभी तस्वीर के साथ अपना मुद्दा मिला है: 'ऑन पॉज़()' प्रणाली को गतिविधि को मारने से पहले खुद को बुलाया जाता है, इसलिए यही कारण है कि 'ऑनसेवस्टेंसस्टेट (बंडल)' भी सुनिश्चित किया जाता है। लेकिन मैंने देखा कि 'ऑनस्टॉप() 'निश्चित रूप से एक जीवन चक्र में' ऑन पॉज़() 'से कम समय के लिए बुलाया जाएगा, और' ऑनस्टॉप() 'को सिस्टम को गतिविधि को मारने से पहले बुलाया जाना भी सुनिश्चित किया जाता है। तो क्यों 'ऑनसेवस्टेंसस्टेट (बंडल)' हमेशा 'ऑन पॉज़() 'के साथ जोड़ता है लेकिन' ऑनस्टॉप()' नहीं? 'SSaveInstanceState (बंडल) को इतनी बार क्यों बुलाया जाना चाहिए? ऐसा लगता है कि सिस्टम के लिए संसाधन का अपशिष्ट है। –
क्योंकि आप अपनी वर्तमान गतिविधि के स्थान (स्क्रीन पर) ले जाने वाली एक और गतिविधि कर सकते हैं, इसलिए आपका ऑन पॉज़() कहा जाता है। एंड्रॉइड डॉक्स से: 'उदाहरण के लिए, जब अर्ध-पारदर्शी गतिविधि खुलती है (जैसे एक संवाद की शैली में से एक), पिछली गतिविधि रोकती है। जब तक गतिविधि अभी भी आंशिक रूप से दिखाई दे रही है लेकिन वर्तमान में फोकस में गतिविधि नहीं है, तो यह रोका गया है। 'Http://developer.android.com/training/basics/activity-lifecycle/pausing.html मैं आपको सभी गतिविधियों को ओवरराइड करने की सलाह देता हूं जीवन चक्र और चारों ओर खेलें ताकि आप गतिविधि को रोका/फिर से शुरू/रोक/नष्ट कर सकें आदि – dazito