1. सामग्री प्रदाता थ्रेड सुरक्षित नहीं हैं
डिफ़ॉल्ट रूप से सामग्री प्रदाता थ्रेड सुरक्षित नहीं हैं। यदि आपके पास सामग्री प्रदाता का उपयोग करने वाले कई धागे हैं, तो आप कई अलग-अलग अपवादों को फेंकने और अन्य डेटा असंगतियों को देख सकते हैं। इसे ठीक करने का सबसे आसान तरीका सामग्री प्रदाता द्वारा उजागर किए गए प्रत्येक सार्वजनिक तरीकों पर सिंक्रनाइज़ कीवर्ड का उपयोग करना है।
इस तरह एक समय में केवल एक धागा ही इन विधियों तक पहुंच सकता है।
2. बहुत सारे लिखने पर अच्छा खेलें
मुझे आवेदन द्वारा आंतरिक रूप से उपयोग किए जाने वाले डेटाबेस में बाइनरी फ़ाइलों से डेटा आयात करने के लिए नए सर्वल मैप्स एप्लिकेशन की आवश्यकता है। ऐसा करने के लिए और बाकी एप्लिकेशन के साथ अच्छा खेलने के लिए यह सबसे अच्छा है:
आयात करने के लिए एक नया धागा स्पॉन करें ताकि अन्य धागे प्रतिकूल रूप से प्रभावित न हों, विशेष रूप से यूआई को अपडेट करने के लिए थ्रेड प्रभारी; और अन्य धागे देने के लिए प्रत्येक आयात के अंत में संक्षेप में रोकें जो कि संकलित विधियों को एक मौका से अधिक उपयोग करने की आवश्यकता है।
3. सामग्री प्रदाता आपको बाद में कभी-कभी सोचने के लिए मजबूर करते हैं
जिस तरह से एंड्रॉइड में सामग्री प्रदाता काम करते हैं, वह आपके बाकी कोड और अंतर्निहित डेटाबेस के बीच अमूर्तता की एक परत प्रदान करता है। यह मुख्य रूप से इस तथ्य के कारण है, जहां तक मैं बता सकता हूं, कि सामग्री प्रदाता डेटाबेस के अलावा अन्य स्थानों से डेटा तक पहुंच सकते हैं।
इसका अर्थ है कि आप अंतर्निहित डेटाबेस पर कच्चे SQL प्रश्नों को निष्पादित नहीं कर सकते हैं और आपको क्वेरी विधि जैसे विभिन्न तरीकों से पारित चर का उपयोग करके SQL क्वेरी के विभिन्न घटकों को निर्दिष्ट करने की आवश्यकता है। यदि आपके पास एक ऐसा कार्य है जो उस तरीके से फिट नहीं बैठता है जो SQL एक सामग्री प्रदाता द्वारा संभाला जाता है तो आपके पास दो विकल्प हैं:
क्वेरी के बारे में बाद में सोचें, हो सकता है कि आपको वह डेटा मिल सके, जिसे आपको वैकल्पिक प्रश्नों की आवश्यकता है और कर्सर से परिणाम प्राप्त कर रहे हैं; और डेटा को सामान्य रूप से एक्सेस करने के लिए एक यूआरआई का उपयोग करें और एक विशेष यूआरआई जो उन कार्यों के लिए एक विशिष्ट क्वेरी से मेल खाता है जिनके पास विकल्प नहीं हैं।