android - एंड्रॉइड एप्लिकेशन में "बंडल" क्या है




bundle android-bundle (8)

एंड्रॉइड एप्लिकेशन में bundle क्या है? इसका उपयोग कब करें?


एक Bundle जावा Map ऑब्जेक्ट की तरह बहुत अधिक है जो String कुंजी को मानों के लिए Map करता है। इसका उपयोग गतिविधियों और अन्य अनुप्रयोग घटकों के बीच जानकारी पास करने के लिए किया जाता है। यह राज्य की जानकारी को कैप्चर और पुनर्स्थापित करने के लिए ढांचे द्वारा भी उपयोग किया जाता है।

कारण एंड्रॉइड इस के लिए सादे पुराने Map ऑब्जेक्ट्स का उपयोग नहीं करता है यह है कि Map बहुत लचीला है; इसमें वस्तुओं (जैसे कहें, I / O धाराएं) हो सकती हैं जिन्हें क्रमबद्ध नहीं किया जा सकता है। Bundle एपीआई उन वस्तुओं के प्रकारों को प्रतिबंधित करता है जिन्हें एक बंडल में जोड़ा जा सकता है जिससे कि बंडल की सामग्री को क्रमबद्ध करने की गारंटी दी जाती है। एंड्रॉइड फ्रेमवर्क इस संपत्ति पर निर्भर करता है।

मेरा सुझाव है कि आप एप्लिकेशन बुनियादी बातों पर दस्तावेज पढ़ते हैं। यह बताता है कि, अन्य चीजों के साथ, क्या बंडल और इरादे हैं और उनके लिए क्या उपयोग किया जाता है।


गतिविधियों के बीच डेटा पारित करने के लिए बंडल का उपयोग किया जाता है। आप एक बंडल बना सकते हैं, इसे उस इरादे में पास कर सकते हैं जो उस गतिविधि को शुरू करता है जिसका उपयोग गंतव्य गतिविधि से किया जा सकता है।


बंडल आमतौर पर विभिन्न एंड्रॉइड गतिविधियों के बीच डेटा पास करने के लिए उपयोग किया जाता है। यह आप पर निर्भर करता है कि आप किस प्रकार के मूल्य पारित करना चाहते हैं, लेकिन बंडल सभी प्रकार के मूल्यों को पकड़ सकते हैं और उन्हें नई गतिविधि में भेज सकते हैं।

आप इसे इस तरह इस्तेमाल कर सकते हैं:

Intent intent = new...
Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("myKey", AnyValue);  
startActivity(intent);

आप पास करके मूल्यों को प्राप्त कर सकते हैं:

Bundle extras = intent.getExtras(); 
String tmp = extras.getString("myKey");

आप यहां अधिक जानकारी प्राप्त कर सकते हैं:


बंडल का उपयोग इराद वस्तु की सहायता से एक गतिविधि से दूसरी गतिविधि में डेटा भेजना; बंडल उस डेटा को पकड़ता है जो किसी भी प्रकार का हो सकता है।

अब मैं बताता हूं कि दो गतिविधि के बीच डेटा को बंडल कैसे बनाया जाए।

चरण 1: पहली गतिविधि पर

Bundle b=new Bundle();

b.putString("mkv",anystring);

Intent in=new Intent(getApplicationContext(),secondActivity.class);

in.putExtras(b);

startActivity(in);

चरण 2: दूसरी गतिविधि पर

Intent in=getIntent();

Bundle b=in.getExtras();

String s=b.getString("mkv");

मुझे लगता है कि यह आपके लिए उपयोगी है ...........


बंडल न केवल दो अलग-अलग घटकों के बीच डेटा स्थानांतरित करने के लिए है, बल्कि अधिक महत्वपूर्ण बात यह है कि गतिविधि को नई गतिविधि में नष्ट करने से पहले संग्रहीत मूल्यों को पुनर्स्थापित करने के लिए उपयोग किया जाता है।

जैसे कि EditText विजेट में टेक्स्ट या ListView की स्क्रॉल स्थिति।


बंडल: - स्ट्रिंग मानों से विभिन्न पार्सलबल प्रकारों में मैपिंग।

बंडल आमतौर पर एंड्रॉइड की विभिन्न गतिविधियों के बीच डेटा पास करने के लिए प्रयोग किया जाता है।

जब हम ऑन () पर रोकें () पर ऑनस्टॉप () और फिर रिवर्स ऑर्डर ऑनटॉप () पर रोकें ()।

पिछले राज्य को पुनर्स्थापित करने के लिए सिस्टम द्वारा सहेजे गए सहेजे गए डेटा को "इंस्टेंस स्टेटस" कहा जाता है और यह बंडल ऑब्जेक्ट में संग्रहीत कुंजी-मूल्य जोड़े का संग्रह होता है।


बस एक बंडल बनाएँ,

Bundle simple_bundle=new Bundle();
simple_bundle.putString("item1","value1");
Intent i=new Intent(getApplicationContext(),this_is_the_next_class.class);
i.putExtras(simple_bundle);
startActivity(i);

"This_is_the_next_class.class" में

आप इस तरह की चीजें पुनर्प्राप्त कर सकते हैं।

Intent receive_i=getIntent();
Bundle my_bundle_received=receive_i.getExtras();
my_bundle_received.get("item1");
Log.d("Value","--"+my_bundle_received.get("item1").toString);

मुझे यह जोड़ना होगा कि भविष्य में डेटा पास करने के लिए गतिविधियों द्वारा उन बंडलों का उपयोग किया जाता है।

जब स्क्रीन घूमती है, या जब कोई अन्य गतिविधि शुरू होती है, तो विधि protected void onSaveInstanceState(Bundle outState) को बुलाया जाता है, और गतिविधि नष्ट हो जाती है। बाद में, गतिविधि का एक और उदाहरण बनाया गया है, और public void onCreate(Bundle savedInstanceState) गया इंस्टेंसस्टेट public void onCreate(Bundle savedInstanceState) कहा जाता है। जब गतिविधि का पहला उदाहरण बनाया जाता है, तो बंडल शून्य होता है; और यदि बंडल शून्य नहीं है, तो गतिविधि अपने पूर्ववर्ती द्वारा शुरू की गई कुछ व्यवसाय जारी रखती है।

एंड्रॉइड स्वचालित रूप से पाठ फ़ील्ड में टेक्स्ट सहेजता है, लेकिन यह सब कुछ सहेजता नहीं है, और सूक्ष्म बग कभी-कभी प्रकट होते हैं।

हालांकि, सबसे आम विरोधी पैटर्न, यह मान रहा है कि onCreate() केवल प्रारंभिकता करता है। यह गलत है, क्योंकि इसे राज्य को बहाल करना भी आवश्यक है।

इस "रोटेशन पर पुन: निर्माण गतिविधि" अक्षम करने का एक विकल्प है, लेकिन यह पुनरारंभ-संबंधी बग को रोक नहीं पाएगा, इससे उन्हें उल्लेख करना अधिक कठिन हो जाएगा।

ध्यान दें कि गतिविधि की जाने वाली एकमात्र विधि जिसकी कॉल की गारंटी दी जा रही है, पर onPause() । (दस्तावेज़ों में गतिविधि जीवन चक्र ग्राफ देखें।)







android-bundle