2014-09-27 8 views
9

के साथ ग्रीन डीएओ का उपयोग करके मैं अपनी परियोजना में GreenDAO का उपयोग करने की योजना बना रहा हूं। मैंने पहले से ही एक परीक्षण परियोजना बनाकर इसका परीक्षण किया था। हालांकि, मेरे पास कुछ आवश्यकताएं हैं, जिन्हें मुझे पूरा करने की आवश्यकता है।सामग्री प्रदाता

  1. मेरे ऐप का डेटाबेस एन्क्रिप्ट किया जाएगा। ऐसा करने के लिए, हम SQLCipher का उपयोग करने की योजना बना रहे हैं। मुझे यह link मिला। मैं इसका अध्ययन कर रहा हूं, लेकिन जानना चाहता हूं कि मूल ग्रीनडाओ परियोजना में कुछ भी उपलब्ध है।

  2. चूंकि मेरा ऐप सर्वर से डेटा को/सिंक करेगा, इसलिए मैं SyncAdapter का उपयोग करूंगा क्योंकि मैं अपने द्वारा सभी हेडिलिफ्टिंग नहीं करना चाहता जो पहले से ही एंड्रॉइड फ्रेमवर्क द्वारा किया गया है। लेकिन इसके साथ काम करने के लिए Content Provider की आवश्यकता है। तो, मैं Content Provider के साथ ग्रीनडाओ का उपयोग कैसे कर सकता हूं।

अद्यतन 2

मेरे परियोजना सात इकाइयां हैं। मैंने इकाइयों पर addContentProvider() का उपयोग किया। और सात अलग-अलग सामग्री प्रदाता उत्पन्न होते हैं। क्या एक एकल सामग्री प्रदाता में सभी स्क्लाइट टेबल रखने का कोई तरीका है?

+2

मैं greendao सिंक एडाप्टर के साथ उपयोग करता हूं। आपको केवल इकाई बनाने के दौरान .addContentProvider() जोड़ने की आवश्यकता है। दुर्भाग्य से, मुझे 1 बिंदु के बारे में ज्ञान नहीं है। – dominik4142

+0

@ dominik4142 क्या आप सिंक एडाप्टर के साथ जेनरेट किए गए सामग्री प्रदाताओं का उपयोग करके मुझे थोड़ा सा सहायता दे सकते हैं? मैं सीख रहा हूं कि सिंक एडाप्टर का उपयोग कैसे करें। –

उत्तर

9

मेरे पास एक परियोजना है जो हरितदाओ और सामग्री प्रदाता के साथ चल रही है। सबसे पहले मैं सामग्री प्रदाता के साथ सामग्री प्रदाता और क्वेरी उत्पन्न करने के लिए ProviGen का उपयोग कर रहा था लेकिन फिर परियोजना बहुत बड़ी हो गई, इसलिए मैंने ग्रीनडाओ को लागू करने का निर्णय लिया, मैंने सामग्री का उपयोग करने के लिए क्या किया है प्रदाता में बनाए गए प्रदाता द्वारा डेटाबेस प्राप्त करने के लिए , तो अब मेरे पास एक ही डेटाबेस से जुड़ी सामग्री प्रदाता और प्रोविजन दोनों हैं। मैं आपको अपना ContentProvider बनाने के लिए प्रोत्साहित करता हूं और इसके साथ उत्पन्न डेटाबेस में अपने दाओमास्टर को संलग्न करता हूं।

private static DaoSession daoSession; 
public void onCreate(){ 
SQLiteOpenHelper myAppOpenHelper = new ProvigenContentProvider().openHelper(this); //ContentProvider created previously 
SQLiteDatabase db = myAppOpenHelper.getWritableDatabase(); 
DaoMaster daoMaster = new DaoMaster(db); 
daoSession = daoMaster.newSession(); 
} 

उसके बाद सिर्फ greendao उपयोग करने के लिए:: यहाँ कोड का टुकड़ा मैं onCreate आवेदन कक्षा में प्रयोग किया जाता है

public DaoSession getDaoSession(){ 
     return daoSession; 
} 

और वहाँ तुम दोनों contentProvider और greenDao हो सकता है। यदि आपने अभी तक अपनी प्रोजेक्ट शुरू नहीं की है तो सामग्री प्रदाता मैन्युअल रूप से बनाएं और यहां एक ही कोड के साथ दाओमास्टर बनाएं। गुड लक

+0

हाय, आपकी प्रतिक्रिया के लिए धन्यवाद। मैं इसे देख रहा हूँ। मुझे एक छोटा सा संदेह है। मुझे स्पष्ट नहीं है कि मुझे सामग्री प्रदाता की 'क्वेरी और डालने' विधियों का उपयोग करके क्वेरी करने या डालने की आवश्यकता है, तो मुझे क्या करना होगा – Nitish

+0

सामग्री प्रदाता का उपयोग करके आप बस 'getContentResolver.query (स्ट्रिंग सामग्री_री, स्ट्रिंग [] कॉलम_नाम, स्ट्रिंग कहां_क्लोज़, स्ट्रिंग का उपयोग कर सकते हैं [] where_parameters, स्ट्रिंग ऑर्डर); 'किसी भी गतिविधि में या अगर किसी टुकड़े में निष्पादित किया जाता है तो पहले' getActivity.' का उपयोग करें, greendao के साथ आसान है, आपको बस 'myObject = session.getMyDao() क्वेरीबल्डर()। (MyDao.Properties.Id.eq (1))। अनन्यऑरोहो(); 'आप बिंदु 1 के लिए अधिक दस्तावेज़ [यहां] (http://developer.android.com/guide/topics/providers/content-provider-basics.html) – Eefret

+0

प्राप्त कर सकते हैं आपके द्वारा पोस्ट किया गया लिंक, मुझे नहीं लगता कि ग्रीनडाओ के पास मूल sqlCipher समर्थन है अब – Eefret

संबंधित मुद्दे