दिलचस्प पोस्ट
फेसबुक की ग्राफ़ एपीआई कॉल की सीमा क्या है? मावेन युद्ध निर्भरता स्विफ्ट में सॉर्ट किए गए सरणी में सही स्थिति में मैं एक तत्व कैसे सम्मिलित कर सकता हूं? JTextFields JPanel पर सक्रिय ड्राइंग के शीर्ष पर, थ्रेडिंग समस्याओं निर्भरता उलटा सिद्धांत क्या है और यह महत्वपूर्ण क्यों है? मर्ज कमिट खोजें, जिसमें एक विशेष प्रतिबद्धता शामिल है IntelliJ IDEA में पैरामीटर संकेत को अक्षम कैसे करें? जावास्क्रिप्ट में एक regexp करने के लिए चरखी गुजरते हुए डोमेन से सेवा करते समय सत्र कुकी क्यों काम करती है, लेकिन आईपी का उपयोग करते समय नहीं? JSF 2 में faces-config.xml का क्या उपयोग है? Gmail के माध्यम से System.Net.Mail का उपयोग करके ईमेल भेजें अनुरोध डिस्प्चर। फोर्वार्ड () बनाम एचटीटीपीएसर्वेटरस्पॉन्स। एंड्रॉइड () jQuery मोबाइल: फ़ॉर्म डेटा को सही ढंग से कैसे सबमिट करें होम स्क्रीन पर प्रोग्राम की जा रही है जावा पैक बनाम जावा पैकेज

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

मुझे यह जानना है कि एंड्रॉइड बंडल के डेटा आकार की ऊपरी सीमा है या नहीं। मैं बंडल द्वारा डेटा पोस्ट करने की कोशिश करता हूं जो आकार> 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 क्लास का इस्तेमाल कर सकते हैं।