दिलचस्प पोस्ट
asp.net – सत्र – एकाधिक ब्राउज़र टैब – अलग सत्र? क्या जावा में एक विधि के लिए अंकगणित ऑपरेटरों को पास करना संभव है? यह निर्धारित कैसे होता है कि वस्तु अवरोधित है (सिंक्रनाइज़) ताकि जावा में ब्लॉक न हो? रोटेशन मैट्रिक्स के बीच इंटरपोलेट करना स्काला के लिए जेवीएम हीप आकार बढ़ाएं? आईओएस 7 – स्थिति बार दृश्य को ओवरलैप करता है एकल एक्शन क्लास में एकाधिक सबमिट बटन परिदृश्य में क्लिक सबमिट बटन का पता कैसे लगाया जाता है? अजगर मेरे डिक्शनरी को इतना पसंद क्यों कर रहा है? एंड्रॉइड: फोन दोहरी सिम है या नहीं यह जांचें सभी एंड्रॉइड संपर्क कैसे प्राप्त करें, लेकिन सिम पर हैं बिना git धक्का सब कुछ ऊपर-से-तारीख बताता है हालांकि मेरे पास स्थानीय परिवर्तन हैं I मैं mod_rewrite में एक निर्देशिका को कैसे अनदेखा कर सकता हूँ? सरणी की सूची को एक बहुआयामी सरणी में कनवर्ट कैसे करें आरजीबी मूल्यों को पूर्णांक में कनवर्ट करें XmlSerializer निर्माता पर FileNotFoundException दे रहा है

क्या एंड्रॉइड 'बंडल में कुछ सीमाएं हैं?

मुझे यह जानना है कि एंड्रॉइड बंडल के डेटा आकार की ऊपरी सीमा है या नहीं। मैं बंडल द्वारा डेटा पोस्ट करने की कोशिश करता हूं जो आकार> 80k, और एंड्रॉइड घातक अपवाद फेंकते हैं। डेटा सीरियलिज़ेबल है।

वेब के समाधान से एकत्रित समाधान "क्या एंड्रॉइड 'बंडल में कुछ सीमाएं हैं?"

मुझे लगता है कि सीमा 500kb है आप पारित ऑब्जेक्ट को किसी फ़ाइल में सहेज सकते हैं और इसके बजाय बंडल में फ़ाइल का पथ भेज सकते हैं। आप ऐसे ही प्रश्न पूछ सकते हैं जो मुझसे पूछा गया था

यह बंडल के उद्देश्य पर निर्भर करता है बंडल ही केवल स्मृति की मात्रा के द्वारा सीमित है

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

1. इंटेंट्स / बाइंडर्स

एंड्रॉइड कंटेंट्स के बीच जानकारी देने के लिए जब बंडल को बाइंडर लेन-देन में क्रमबद्ध किया जाता है। एक प्रक्रिया में सभी बाइंडर लेनदेन के लिए कुल आकार 1 एमबी है यदि आप इस सीमा से अधिक हैं तो आपको यह गंभीर त्रुटि मिलेगी "!!! असफल द्विपदीय लेनदेन !!!"

यह अनुशंसा है कि आप इन बंडलों में जितना संभव हो उतना छोटा डेटा रखें क्योंकि यह साझा बफर है, डिस्क पर कुछ किलोबाइट से अधिक कुछ लिखा जाना चाहिए।

संदर्भ: https://android.googlesource.com/platform/frameworks/base/+/jb-release/core/jni/android_util_Binder.cpp

ALOGE("!!! FAILED BINDER TRANSACTION !!!"); // TransactionTooLargeException is a checked exception, only throw from certain methods. // FIXME: Transaction too large is the most common reason for FAILED_TRANSACTION // but it is not the only one. The Binder driver can return BR_FAILED_REPLY // for other reasons also, such as if the transaction is malformed or // refers to an FD that has been closed. We should change the driver // to enable us to distinguish these cases in the future. 

संदर्भ: http://developer.android.com/reference/android/os/TransactionTooLargeException.html

बीन्डर ट्रांज़ैक्शन बफ़र के पास सीमित निश्चित आकार है, वर्तमान में 1 एमबी, जो सभी लेनदेन द्वारा प्रक्रिया के लिए प्रगति की जाती है। नतीजतन इस अपवाद को फेंक दिया जा सकता है जब कई लेन-देन चल रहे हैं, जब भी अधिकांश व्यक्तिगत लेनदेन मध्यम आकार के होते हैं।

2. सहेजे गए इन्सटेंस स्टेट (सवेव इंटेंस स्टेटस पर गतिविधि, ऑन-पॉज़ इत्यादि)

मुझे गतिविधि की स्थिति को संरक्षित करने के लिए इस्तेमाल किए गए बंडल में कोई सीमा नहीं मिली I मैंने कुछ परीक्षण किये और मैं सहेजने का प्रयास करने वाले डेटा को आवंटित करने की कोशिश में मेमोरी अपवाद प्राप्त करने से पहले सफलतापूर्वक लगभग 175mb स्टोर कर सकता था।

हाँ, यह है, और अब एंड्रॉइड नोगाैट में यह क्रैश हो जाएगा यदि आप सीमा को पार कर चुके हैं (500 केबी)।

एंड्रॉइड नोगाट मुद्दा

मुझे लगता है कि अधिकतम बंडल आकार 1024 किलोबाइट है। गतिविधियों के बीच बड़ी वस्तुओं को स्थानांतरित करने के लिए, आपको अन्य तरीकों (स्मृति कैश, स्थानीय भंडारण, आदि) की कोशिश करनी चाहिए।

Google Android API के अनुसार, तिथि 50K से कम होनी चाहिए

हाँ, इसमें 1 एमबी सीमा है

आप डेटा पास करने के लिए Singleton क्लास का इस्तेमाल कर सकते हैं।