हाय हम अपने एंड्रॉइड एप्लिकेशन में एक अजीब समस्या का सामना कर रहे हैं। जब हम ऐप (पहली गतिविधि) शुरू करते हैं तो हम अपने ऐप में सभी ऑब्जेक्ट्स/डेटा को एक सामान्य ऑब्जेक्ट (ऑब्जेक्ट ए के रूप में बुलाते हैं) में संग्रहीत कर रहे हैं। हमने उस ऑब्जेक्ट में खुद को संदर्भित किया। जब भी हमें हमारे ऐप में संदर्भ की आवश्यकता होती है तो हम ऑब्जेक्ट ए से संदर्भ प्राप्त कर रहे हैं और इसका उपयोग कर रहे हैं। नीचे दिए गए मामलों को छोड़कर सभी मामलों में यह ठीक काम कर रहा है।
i) जबकि हमारा ऐप पृष्ठभूमि में है, हमने कुछ उच्च अंत गेम खेले हैं। अब हम कम से कम स्क्रीन (हालिया ऐप्स) के माध्यम से ऐप पर वापस गए। अचानक ऐप दुर्घटनाग्रस्त हो गया।
ii) अगर हम सेटिंग के माध्यम से ऐप को रोकते हैं, और कम से कम स्क्रीन के माध्यम से ऐप पर वापस आते हैं तो वही दुर्घटना होती है।ऑब्जेक्ट शून्य हो जाता है
दोनों मामले, ऑब्जेक्ट ए शून्य हो जाता है (इसे जीसी द्वारा हटाया जा सकता है), इसलिए ऑब्जेक्ट ए पर निर्भर सभी ऑपरेशन अपवाद प्राप्त कर रहे हैं।
ऐसा क्यों हो रहा है? हम जीसी को वस्तु ए एकत्र करने से कैसे रोक सकते हैं? हम बल स्टॉप से कैसे निपट सकते हैं? कृपया कोई विचार दें।
आप जीसी या सिस्टम को अपनी प्रक्रिया को मारने से मजबूर नहीं कर सकते हैं। आपको ऐसे मामलों में अपनी वस्तु को क्रमबद्ध/deserialize करने का एक तरीका खोजना चाहिए। –
एंड्रॉइड ऐप्स लिखते समय आपको सबसे महत्वपूर्ण अवधारणा समझनी चाहिए। http://developer.android.com/training/basics/activity-lifecycle/index.html – Kuffs
एंड्रॉइड (वास्तव में, डाल्विक) जीसी व्यक्तिगत ऑब्जेक्ट्स नहीं करता है जब तक कि आपका ऐप नहीं चल रहा हो और इसमें कोई संदर्भ न हो। मुझे नहीं पता कि यह मिथक कहाँ शुरू हुआ। आपका ** ऐप ** मारे जा सकता है, इस मामले में यह सब खरोंच से शुरू होता है। यदि आपको राज्य को सहेजने की आवश्यकता है, तो 'ऑन पॉज़()' और/या 'ऑनस्टॉप() 'का उपयोग करके क्रमबद्ध करें। नोट, 'onDestroy()' केवल तभी उपयोगी होता है जब आप एक गतिविधि समाप्त करें() '। बीटीडब्ल्यू, यदि वह 'संदर्भ' जिसे आप संग्रहीत कर रहे हैं वह 'गतिविधि' संदर्भ है, तो आप इसे सब गलत कर रहे हैं। – Simon