एंड्रॉइड पर स्क्लाइट आपको पढ़ने के लिए एकाधिक प्रोसेस से डेटाबेस तक पहुंचने देता है, लेकिन यदि आप वर्तमान में एक प्रक्रिया से लिख रहे हैं, तो अन्य प्रोसेस से पढ़ और लिखना अपवाद फेंक देगा क्योंकि पहले लिखने में एक ताला है डीबी परअपवादों के बिना एंड्रॉइड स्क्लाइट समेकन
"procs" से मेरा मतलब है एक ही ऐप में अन्य धागे।
क्या कोई धागा बस एक मानक तरीका है जब तक डेटाबेस उपलब्ध नहीं हो जाता है, संभवतः एक निर्दिष्ट टाइमआउट के साथ, अपवाद फेंकने के बजाय?
"आप ऐसा क्यों कर रहे हैं" की उम्मीद कर रहे हैं? जवाब, यह वैसे ही हम इसे कर रहे हैं, और यही वह है। हम एक सामग्री प्रदाता का उपयोग नहीं करेंगे। बस डीबी एक्सेस सिंक्रनाइज़ करने का एक तरीका चाहते हैं।
मान लीजिए कि ऐसा करने का कोई मानक तरीका नहीं है, हम शायद कुछ थ्रेड सिंक्रनाइज़ेशन करने के लिए डीबी कॉल के चारों ओर एक रैपर लिखना बंद कर देंगे।
तो, आप 1 SQLiteOpenHelper का उपयोग कर रहे हैं, और फिर अपने पूरे ऐप के लिए 1 लिखने योग्य कनेक्शन कह रहे हैं? सभी गतिविधियों और सेवाओं? –
मेरे पास इस जवाब को अंगूठे लगाने के लिए पर्याप्त "कठोर" नहीं है, लेकिन इससे मुझे सही उत्तर के मार्ग का नेतृत्व किया गया। SQLiteOpenHelper वास्तव में एक ही कैश किए गए ऑब्जेक्ट को लौटाता है, भले ही आप "getReadable ..." या "getWritable ..." को कॉल करते हैं, फिर डेटाबेस ऑब्जेक्ट के पास कोई जावा लॉक ऑब्जेक्ट है, यह सुनिश्चित करने के लिए कि कोई भी कॉल, पढ़ या लिखना क्रमबद्ध है। मुझे एक सिंगलटन SQLiteOpenHelper रखना होगा, जो मुझे समय-समय पर डीबी ऑब्जेक्ट्स को "बंद" करने देगा, जो "सुरक्षित" लगता है। स्क्लाइट स्वयं कई पढ़ने वाले क्लाइंट को संभाल सकता है, जो तार्किक रूप से बेहतर प्रदर्शन करने लगते हैं, लेकिन जो भी हो। फिर से धन्यवाद। –
@ कागी प्रश्न पूछने वाले के रूप में, आप इस उत्तर को स्वीकार कर सकते हैं, या अपना उत्तर लिख सकते हैं और स्वीकार कर सकते हैं कि – ohhorob