मेरे पुराने ऐप को अपडेट करने का प्रयास कर रहा है जिसमें कुछ विधियों को बहिष्कृत किया गया है। मुझे पता चला कि अगर मैं ListView के साथ काम करना चाहता हूं जो डीबी से डेटा दिखाता है, तो मुझे लोडरमैनेजर + कर्सर लोडर का उपयोग करना चाहिए। कर्सर लोडर सामग्री प्रदाताओं के साथ काम करता है। तो मेरे डीबी में प्रत्येक टेबल के लिए मुझे अब सामग्री प्रदाता बनाना चाहिए? मैं क्यों ? जहां तक मुझे पता है कि सामग्री प्रदाताओं का उपयोग अन्य अनुप्रयोगों के साथ कुछ डीबी जानकारी साझा करने के लिए किया जाता है, लेकिन मेरा ऐप किसी भी जानकारी को साझा नहीं करता है। तो क्या मैं सामग्री प्रदाताओं के बिना कर्सर लोडर का उपयोग कर सकता हूं ???एंड्रॉइड: कर्सर लोडर, लोडर मैनेजर, SQLite
उत्तर
मैंने इस विषय पर blog post लिखा है। अधिक जानकारी के लिए आप यह answer भी देख सकते हैं। उम्मीद है कि यह आपके लिए चीजों को साफ़ करेगा।
जैसा कि बराक ने उल्लेख किया है, कोई सामग्री प्रदाताओं के बिना AsyncTaskLoader<Cursor>
कक्षा को बढ़ाकर लागू कर सकता है। उस ने कहा, अधिकांश ट्यूटोरियल और नमूना कोड ContentProvider
एस का उपयोग करते हैं, और ऐसा लगता है कि एंड्रॉइड टीम इसके उपयोग को भी प्रोत्साहित करती है। यह आपकी अपनी कक्षा को लागू करने से भी बहुत कम जटिल है।
कहा कि, आप वास्तव में नहीं सामग्री प्रदाताओं उपयोग करना चाहते हैं, डायने Hackborn (एंड्रॉयड ढांचे डेवलपर्स में से एक है, और जिसे "hackbod" यहाँ इतने पर जाना जाता है) से पता चलता है अपने का उपयोग करता है अपने खुद के लोडर लेखन एक सामग्री प्रदाता के बजाय डेटाबेस वर्ग। सबसे आसान तरीका संगतता लाइब्रेरी से CursorLoader
वर्ग का स्रोत लेना है, और प्रदाता प्रश्नों को अपने स्वयं के डीबी सहायक वर्ग में प्रश्नों के साथ प्रतिस्थापित करना है।
मुझे लगता है कि यह उल्लेख करने योग्य है कि 'ContentProvider' का उपयोग केवल तभी प्रोत्साहित किया जाता है जब आप अन्य ऐप्स को डेटा प्रदान करने की योजना बनाते हैं। यदि आप नहीं करते हैं (यानी डेटा आपके ऐप के लिए निजी है), तो आपको सादे SQLite डेटाबेस का उपयोग करने के लिए प्रोत्साहित किया जाता है। अधिक जानकारी के लिए, [ContentProvider] (https://developer.android.com/reference/android/content/ContentProvider.html) के लिए दस्तावेज़ देखें। – Felix
मुझे लगता है कि "संगतता लाइब्रेरी से कर्सर लोडर वर्ग का स्रोत लेना, और ..." सबसे अच्छा विकल्प है, है ना? – BornToCode
मुझे 'ऑर्म्सलाइट' को संभालने के लिए अपनी कक्षा के साथ 'कर्सर लोडर' का विस्तार करना पड़ा। – theblang
हाँ आप कर सकते हैं, आपके पास कस्टम डेटा लोडर हो सकते हैं जो आपके द्वारा परिभाषित वस्तुओं को लोड कर सकते हैं या उस मामले में किसी ऑब्जेक्ट प्रकार या सूची को लोड कर सकते हैं।
संगतता लाइब्रेरी नमूने और डेमो में LoaderCustomSupport.java के लिए एंड्रॉइड एसडीके से नमूने देखें।
- 1. हैंडल कर्सर लोडर अपवाद
- 2. एंड्रॉइड कर्सर लोडर बनाम AsyncQueryHandler?
- 3. कर्सर लोडर को लोडर पर कैसे डालें <Object>
- 4. पेजेड सूची और कर्सर लोडर
- 5. लोडर और ऑनलोडर रीसेट एंड्रॉइड
- 6. एकाधिक सामग्री प्रदाता के लिए कर्सर लोडर
- 7. एंड्रॉइड: गैर-शीर्षतम टुकड़े पर कर्सर लोडर क्रैश
- 8. कर्सर लोडर, स्थानीय डेटाबेस के लिए यूआरआई प्राप्त करें
- 9. SQLite डीबी से पूछने के लिए कर्सर लोडर का उपयोग करना और ऑटोकंपलेटटेक्स्टव्यू
- 10. कर्सर लोडर के साथ ListFragment में SQLite डेटाबेस क्वेरी करने के लिए सर्वोत्तम अभ्यास?
- 11. लोडर उन्मुखीकरण परिवर्तन
- 12. SQLite एंड्रॉइड कर्सर
- 13. सूचीदृश्य पर असीमित छवि लोडर [एंड्रॉइड]
- 14. एंड्रॉइड वेबव्यू में setUserAgentString का भार लोडर()
- 15. एंड्रॉइड - FragmentActivity + लोडर का उपयोग FragmentStatePagerAdapter
- 16. डिफ़ॉल्ट एंड्रॉइड लोडर एनीमेशन कैसे बनाएं?
- 17. कर्सर लोडर के बारे में उलझन में और एक कस्टम SQLiteOpenHelper
- 18. ट्विटर बूटस्ट्रैप ऑनलाइन लोडर?
- 19. बूटस्ट्रैप लोडर और कर्नेल
- 20. अगर ionCube लोडर
- 21. कस्टम क्लास लोडर
- 22. जावा वर्ग लोडर ट्यूटोरियल
- 23. THREE.js ओबीजे लोडर ऑब्जेक्ट्स
- 24. आलसी लोडर सक्षम
- 25. ऐप्पल एप्लिकेशन लोडर कंसोल
- 26. enum बनाम क्लास लोडर
- 27. java.lang.LinkageError: लोडर बाधा उल्लंघन
- 28. जावा 6 सर्विस लोडर
- 29. फ्लास्क-लॉगिन टोकन लोडर
- 30. आईट्यून्स एप्लिकेशन लोडर - ऑटोमेशन
विषय पर मेरी ब्लॉग पोस्ट देखें: [** 'लोडर प्रबंधक' ** को समझना (http://www.androiddesignpatterns.com/2012/05/why-you-should-use-loadermanager.html) –
@Jim क्या सामग्री प्रदाता के साथ कोई समस्या है क्या आप मेरी मदद कर सकते हैं? –