android - डेटा को जारी रखने के लिए एंड्रॉइड एप्लिकेशन क्लास का उपयोग करना




application-lifecycle (4)

आप एप्लिकेशन क्लास बना सकते हैं और उस कैल्स पर अपने सभी डेटा को अपने एप्लिकेशन में कहीं भी इस्तेमाल कर सकते हैं।

मैं एक काफी जटिल एंड्रॉइड एप्लिकेशन पर काम कर रहा हूं जिसके लिए एप्लिकेशन के बारे में कुछ हद तक डेटा की आवश्यकता है (मैं कुल 500 केबी कहूंगा - क्या यह मोबाइल डिवाइस के लिए बड़ा है?)। जो मैं बता सकता हूं, आवेदन में कोई अभिविन्यास परिवर्तन (गतिविधि में, अधिक सटीक होने के लिए) गतिविधि का पूर्ण विनाश और मनोरंजन का कारण बनता है। मेरे निष्कर्षों के आधार पर, एप्लिकेशन क्लास में एक ही जीवन चक्र नहीं है (यानी यह सभी उद्देश्यों और उद्देश्यों के लिए है, हमेशा तत्काल)। क्या यह सूचना वर्ग के अंदर राज्य की जानकारी को स्टोर करने और फिर गतिविधि से संदर्भित करने के लिए समझ में आता है, या आमतौर पर मोबाइल उपकरणों पर स्मृति बाधाओं के कारण "स्वीकार्य" विधि नहीं है? मैं वास्तव में इस विषय पर किसी भी सलाह की सराहना करता हूं। धन्यवाद!


आप वास्तव में अभिविन्यास कार्यक्षमता को ओवरराइड कर सकते हैं यह सुनिश्चित करने के लिए कि आपकी गतिविधि नष्ट नहीं हुई है और फिर से बनाई गई है। here देखो


डेव, यह किस तरह का डेटा है? यदि यह सामान्य डेटा है जो पूरे एप्लिकेशन से संबंधित है (उदाहरण: उपयोगकर्ता डेटा), तो एप्लिकेशन क्लास का विस्तार करें और उसे वहां स्टोर करें। यदि डेटा गतिविधि से संबंधित है, तो आपको स्क्रीन रोटेशन पर डेटा को बनाए रखने के लिए ऑनसेवस्टेंसस्टेट और ऑनस्टोर इंस्टेंसस्टेट हैंडलर का उपयोग करना चाहिए।


मुझे नहीं लगता कि 500kb एक सौदा का बड़ा होगा।

आपने जो वर्णन किया है वह बिल्कुल है कि मैंने गतिविधि में डेटा खोने की मेरी समस्या का सामना कैसे किया। मैंने एप्लिकेशन क्लास में एक वैश्विक सिंगलटन बनाया और मैंने उपयोग की जाने वाली गतिविधियों से इसे एक्सेस करने में सक्षम था।

यदि आप इसका उपयोग करने जा रहे हैं तो आप ग्लोबल सिंगलटन में डेटा पास कर सकते हैं।

public class YourApplication extends Application 
{     
     public SomeDataClass data = new SomeDataClass();
}

फिर इसे किसी भी गतिविधि में कॉल करें:

YourApplication appState = ((YourApplication)this.getApplication());
appState.data.UseAGetterOrSetterHere(); // Do whatever you need to with the data here.

मैं अपने ब्लॉग पोस्ट में "ग्लोबल सिंगलटन" अनुभाग के तहत यहां चर्चा करता हूं





application-lifecycle