6

के साथ उनका उपयोग करके मैं एक ऐप लिख रहा हूं जो लोगों को विभिन्न कार्यों के लिए अलार्म सेट करने की अनुमति देता है जिन्हें उन्हें करने की आवश्यकता है। मेरी वर्तमान योजना सभी प्रासंगिक डेटा को SQLite डेटाबेस में संग्रहीत करना है। इसके लिए, मैंने एक वर्ग बनाया है जो SQLiteOpenHelper को बढ़ाता है और इसे सभी सीआरयूडी को संभालने के तरीकों से भरता है जिसे मैं लेना चाहता हूं। यह जानकर कि एक थ्रेड पर सभी प्रसंस्करण करना आम तौर पर एक बुरा विचार है, मैं थ्रेड के बीच काम को अलग करने के तरीके को देखा और कर्सर लोडर और लोडर मैनेजर पाया, जो आदर्श लग रहा था क्योंकि वे एंड्रॉइड संगतता लाइब्रेरी में उपलब्ध थे। हालांकि, लोडर मैनेजर को tutorial in the documentation द्वारा एक सामग्री प्रदाता की आवश्यकता होती है, और मुझे वास्तव में ContentProviders के साथ कुछ भी करने की ज़रूरत नहीं है क्योंकि मैं अन्य ऐप्स को डेटा तक पहुंचने की अनुमति देने की योजना नहीं बना रहा था। एक ContentProvider के बिना, मुझे नहीं पता कि मुझे अपने डेटाबेस के लिए CursorLoader में फ़ीड करने के लिए उरी कैसे प्राप्त करना है। क्या मेरे क्लास का उपयोग जारी रखने का कोई तरीका है जो SQLiteOpenHelper को बढ़ाता है और अभी भी लोडरमैनेजर को लागू करता है ताकि मुझे मेरे कर्सर के साथ यूआई थ्रेड के सभी पॉपुलटिंग लिस्टफ्रैगमेंट्स को रखने की अनुमति मिल सके?कर्सर लोडर के बारे में उलझन में और एक कस्टम SQLiteOpenHelper

+0

इस प्रश्न के लिए धन्यवाद। दस्तावेजों में उनके सभी उदाहरण केवल दिखाते हैं कि संपर्कों के साथ कर्सर का उपयोग कैसे करें, जैसे कि हम सभी को इसके लिए डेटाबेस की आवश्यकता है ... – lenooh

उत्तर

4

वहाँ मेरे लिए एक तरह से मेरी कक्षा कि SQLiteOpenHelper फैली का उपयोग कर रखने के लिए और अभी भी लागू LoaderManager मुझे यूआई धागे के बंद मेरी कर्सर के साथ सभी को आबाद करने ListFragments रखने के लिए अनुमति देने के लिए करने के लिए है?

आपको केवल Loader कार्यान्वयन की आवश्यकता है, जिसमें ContentProvider शामिल नहीं है। ऐसा ही होता है कि I wrote one of those

+0

ठोस लगता है। हालांकि गिट से प्रोजेक्ट को आयात करने के कारण एक्लेप्से ने @ ओवरराइड एनोटेशन के बारे में एक शेरर त्रुटि को फेंक दिया है। फिर भी, मैं इसे आज़माउंगा। – MowDownJoe

+0

@MowDownJoe: आपको अपने जावा अनुपालन स्तर को 1.6 की बजाय 1.6 पर सेट करने की आवश्यकता है। – CommonsWare