2011-12-27 18 views
13

मैं SharedPreferences कक्षा के साथ बहुत से तारों को सहेजना चाहता हूं। ये तार लंबे समय से छोड़ दिए जाते हैं। मैं वास्तव में एक स्ट्रिंग की अधिकतम लंबाई जानना चाहता हूं जिसे एंड्रॉइड में साझा वरीयताओं में सहेजा जा सकता है। और यह भी SharedPrefernces कक्षा में डेटा का कितना आकार स्टोर कर सकता है।साझा किए गए संदर्भों का अधिकतम आकार वर्ग

उत्तर

8

एंड्रॉयड वास्तुकला के अनुसार वहाँ SharedPreference में डाटा स्टोर करने में ऐसी कोई सीमा नहीं है। बेहतर तरीका डेटाबेस (SQLite) है जब आपको बड़ी मात्रा में डेटा

2

से कहीं निपटना है, तो मैंने कहीं कहीं पढ़ा है कि Integer.MAX_VALUE (अधिकतम स्ट्रिंग लंबाई) के अलावा कोई हार्ड सीमा नहीं है। लेकिन साझा प्राथमिकताओं पर इतना स्टोर करने की सलाह नहीं दी जाती है, क्योंकि यह एक्सएमएल फाइल है जिसे पार्स किया जाना चाहिए और इसे पार्स करते समय आपको कोई समस्या होगी।

मैं वहां लगभग 50-100KBytes स्टोर करता था। इसने काम कर दिया।

-1

बेशक साझा किए गए संदर्भों की सीमा नहीं है, लेकिन अगर सिस्टम में पर्याप्त स्मृति नहीं होगी तो यह एक पहली चीज है जो इसे हटा देती है, आपको याद है।

0

मैन्युअल रूप से प्राप्त सटीक उत्तर यह है: मेरे मामले में अधिकतम यूनिकोड प्रतीक का आकार 5 657 632 प्रतीकों (या [0 से 5657631]) है। यह SharePReference.Editor के लिए लगभग 2.7 एमबी है।

बल्कि बड़े भंडारण। आप इस आकार दो बार का उपयोग ca:

PreferenceManager.getDefaultSharedPreferences(c) 
context.getSharedPreferences("<key>", <Mode>); 
1

वहाँ SharedPreference डेटा की एक सीमाओं है। मेरे डिवाइस में यह एक मेमोरी अपवाद फेंकता है जब SharePreference डेटा 1428506-बाइट पार करता है।

तो जब आपको स्टोर करने के लिए विशाल डेटा की आवश्यकता होती है तो SQLite डेटाबेस का उपयोग करना बेहतर होता है।

संबंधित मुद्दे