मुझे Android पर SQLite डेटाबेस हैंडलिंग के लिए पिछड़ा संगतता, जटिलता और सर्वोत्तम अभ्यास अनुकूलित करने में कठिनाई हो रही है।एंड्रॉइड पर SQLite टेबल और कर्सर को संभालना
- सीधे
android.database.sqlite
ContentProvider
,CursorLoader
औरLoaderManager
मैं डेटाबेस कार्यान्वयन भविष्य डिजाइन करने के लिए कोशिश कर रहा हूँ के माध्यम से : मैं SQLite डेटाबेस का प्रबंधन करने के दो नहीं पदावनत तरीके और कर्सर पाया प्रमाण। इसका मतलब है कि मैं Google द्वारा प्रचारित सर्वोत्तम अभ्यास को कार्यान्वित करना चाहता हूं। ContentProvider
और LoaderManager
को लागू करने पर।
यदि मैं लार्स वोगल्स प्रस्तावों का पालन करता हूं, तो मेरा कोड डुप्लिकेशंस और अनावश्यक जटिलता के साथ उड़ाया जाता है। यह मेरे डेटाबेस में कुछ तालिकाओं के लिए समझ में आता है। लेकिन यह तीन क्षेत्रों (उदाहरण के लिए) के साथ मैपिंग टेबल के लिए इसे लागू करने का कोई मतलब नहीं होगा। इसके अलावा मुझे ActionbarSherlock
और LoaderManager
के कॉलबैक इंटरफेस में समस्याएं आ रही हैं (एक समाधान है लेकिन यह मेरे डेटा हैंडलिंग कक्षाओं को दोगुना कर देगा)।
android.database.sqlite
के माध्यम से डेटाबेस और कर्सर की डायरेक्ट हैंडलिंग संसाधन प्रबंधन के साथ समस्याएं उकसा रही है (अपने कर्सर बंद करें!) और मुझे कार्य संचालन के लिए जिम्मेदार बनाता है।
मेरे सवाल:
Android पर आप कैसे संभाल रहे हैं SQLite डेटाबेस?
आप अतिरिक्त मील कब जाते हैं और ContentProvider
और LoaderManager
लागू करते हैं?
आप पीछे की ओर संगत कैसे रहते हैं?
मेरे वर्तमान दृष्टिकोण:
मैं एक वर्ग है कि अलग करती डेटाबेस आई/ओ (android.database.sqlite
के माध्यम से) गतिविधियों से बनाया। सभी विधियां उनके निष्पादन (मेरी गतिविधियों के बाहर) के दौरान उपयोग किए जाने वाले कर्सर को खोलें और बंद करें और ऑब्जेक्ट या डेटा को आवश्यकतानुसार लौटाएं (कर्सर की बजाय)। I/O संचालन AsyncTasks
में किया जाता है। यह दृष्टिकोण बहुत बहिष्कृत लगता है।
मेरे पास उन सभी चीजों का उत्तर नहीं है लेकिन मुझे पता है कि समर्थन लाइब्रेरी लोडर के साथ 2.1 तक वापस काम करती है। –