लागू किए बिना इरादे के भीतर ऑब्जेक्ट संदर्भ पास करें मुझे पता है कि समान प्रश्न कई बार पूछे गए हैं। मुझे लगता है कि मैं इसे सबसे ज्यादा पढ़ता हूं। लेकिन कोई जवाब लागू नहीं है।सीरियलज़ेबल या पार्ससेल योग्य
मुझे इरादों (गतिविधि कॉल/प्रसारण) के माध्यम से जटिल वस्तुओं को पारित करने की आवश्यकता है। सब कुछ मेरी प्रक्रिया के भीतर किया जाता है। यही कारण है कि मुझे स्ट्रीम में अपनी ऑब्जेक्ट्स लिखने का कोई कारण नहीं दिखता है, ताकि उन्हें कुछ मिलीसेकंड फिर से इकट्ठा किया जा सके। मैं अपने आवेदन के माध्यम से अपना ऑब्जेक्ट संदर्भ पास करना चाहता हूं। क्या इसे करने का कोई तरीका है।
चूंकि मेरा एप्लिकेशन एक ही घटना को कई बार प्रसारित करेगा क्योंकि मैं स्थिर सदस्यों पर भरोसा नहीं कर सकता। मैंने जो प्रसारण किया था उसके लिए मुझे एक ही वस्तु को असाधारण रूप से प्राप्त करने की आवश्यकता है।
यही कारण है कि मैं एक स्थिर "रेफरेंसहोल्डर" के बारे में सोच रहा था जो एक ऑब्जेक्ट स्वीकार करेगा और एक पूर्णांक लौटाएगा जो इस ऑब्जेक्ट को इसकी आंतरिक सूची में पहचानता है ताकि मैं इस पूर्णांक को .putExtras के माध्यम से पास कर सकूं। लेकिन जहां तक मुझे जावा पता है, मैं इस ऑब्जेक्ट को इस सूची से साफ़ नहीं कर पाया क्योंकि इसे जोड़ा गया है क्योंकि एकाधिक श्रोताओं को एक ही ऑब्जेक्ट में समेकित किया जा सकता है और मुझे इसे हमेशा मेरे रेफरहोल्डर में रखना होगा (मान लीजिए कि थ्रेड किसी भी समय फिर से शुरू किया जा सकता है - यहां तक कि 2 मिनट बाद भी)।
कोई विचार? क्या मुझसे कुछ गलत हो रही है? या किसी भी विचार के बारे में कोई विचार है कि मैं अपने रिफ्रेंस को कैसे साफ कर सकता हूं (शायद कुछ सेकंड के बाद? इससे क्रैश हो सकता है लेकिन ऐसा लगता है कि कोड लिखने से अधिक लागू होता है जो किसी भी कारण से मेरे ऑब्जेक्ट को इकट्ठा करता है और फिर से इकट्ठा करता है)
कुछ लोगों ने वांछित वस्तु को पारित करने के लिए एप्लिकेशन ऑब्जेक्ट में स्थिर क्षेत्र का उपयोग करने के लिए समान प्रश्नों में अनुशंसा की। यही वह है जो मैं नहीं चाहता। एक स्थिर WeakHashMap कुल कानूनी है। यदि हर संदर्भ को मंजूरी दे दी गई है तो मुझे कभी वस्तु की आवश्यकता नहीं होगी, इसलिए वीक रिरेंस बिल्कुल वही है जो मुझे चाहिए। – Chris
@ क्रिस क्षमा करें, मुझे समझ में नहीं आता है कि आप एक स्थिर चर का उपयोग क्यों नहीं कर सकते हैं ** एक ऑब्जेक्ट संदर्भ ** को एक गतिविधि से दूसरे में पास करें। अगर गतिविधि ए 'Globals.object = objectIWantToPass;' और फिर 'ActivityBBonCreate() 'ऑब्जेक्ट myObject = Globals.object है, तो मेमोरी लीक का कोई खतरा नहीं है; Globals.object = शून्य; ' –
क्योंकि यह एक भयानक समाधान है। यही कारण है कि आप संदर्भ के आधार पर वस्तुओं को पारित करते हैं, न कि वर्ग के स्थिर सदस्य द्वारा। मैं एक गतिविधि के रूप में एक गतिविधि के रूप में सोचता हूं जो उस डेटा के साथ कुछ करता है जो मैं पास करता हूं और वह किसी बिंदु पर वापस आ जाएगा और कुछ मामलों में कॉलर को कुछ डेटा वापस दिया जाएगा। लेकिन ऐसा लगता है कि यह एकमात्र तरीका है ... – Chris