2011-08-19 8 views
9

मेरे पास एक लाइब्रेरी ऐप है जहां मैं प्रत्येक पुस्तक को स्क्लाइटडेटाबेस के रूप में संग्रहीत करता हूं। मैं एसडीकार्ड पर सभी पुस्तक डीबीएस बचाता हूं। मेरा सवाल यह है कि यदि उपयोगकर्ता मेरे ऐप को अनइंस्टॉल करता है, तो क्या इस ऐप से संबंधित सभी डीबीएस हटा दिए जाते हैं? यदि नहीं, तो मैं इसे कैसे प्राप्त कर सकता हूं?क्या एंड्रॉइड ऐप की अनइंस्टॉल करने से एसडीकार्ड पर संग्रहीत डेटाबेस हटा दिया जाता है?

धन्यवाद।

उत्तर

9

आम तौर पर नहीं वास्तव में के लिए ..। जब आप अनइंस्टॉल करते हैं, तो एपीके स्वयं (/data/app/com.example.app-1.apk) और /data/data/com.example.app में डेटा (sharedprefs/db/etc) हटा दिया जाता है, लेकिन केवल एंड्रॉइड > = 2.2 एसडीकार्ड से कुछ भी हटा देगा, और केवल एक विशिष्ट निर्देशिका (/sdcard/Android/data/com.example.app आमतौर पर)।

हालांकि फियोयो के कुछ पुराने संस्करण भी एक ऐप delete when updating होगा, जो लगातार भंडारण के लिए उपयोग करना खतरनाक बनाता है।

+0

ठीक है, तो इस तरह के अप्रत्याशित व्यवहार से बचने के लिए मैं इन फ़ाइलों को कैसे और कहां स्टोर करूँ? यदि आंतरिक भंडारण पर संग्रहीत किया जाता है तो यह जल्द ही भर जाता है और यह स्क्लाइटफुल अपवाद प्रदान करना शुरू कर देता है। ऐसी बड़ी संख्या में फाइलों को स्टोर करने का सबसे अच्छा विकल्प क्या है? – techno

+0

मैं /sdcard/data/com.example.app का उपयोग करता हूं। यह सुसंगत है कि इसे अनइंस्टॉल या अपडेट पर कभी नहीं हटाया जाएगा। और यह रूट स्तर पर नहीं है, इसलिए उपयोगकर्ता पीछे की गड़बड़ी से नफरत नहीं करेंगे। हार्डकोडिंग के बजाय "/ sdcard", पर्यावरण का उपयोग करें .getExternalStorageDirectory() और संलग्न/डेटा/और अपने पैकेज का नाम। –

+0

तो, अगर मैं /sdcard/data/com.example.app का उपयोग करता हूं, तो सभी डीबीएस अनइंस्टॉल करने पर हटा दिए जाएंगे, है ना? साथ ही, क्या उपयोगकर्ता इन फ़ाइलों तक पहुंच सकते हैं? – techno

2

यह निर्भर करता है। यदि आप बाहरी फ़ाइलों (एसडी कार्ड) पर अपनी फाइलें कुछ मनमानी जगह पर डालते हैं, तो आपके ऐप को अनइंस्टॉल करने के बाद वे हटाए नहीं जाएंगे। यदि आपने अपनी फ़ाइलों को स्टोर करने के लिए निर्देशिका प्राप्त करने के लिए getExternalFilesDir() (एंड्रॉइड 2.2+) का उपयोग किया है, तो ऐप अनइंस्टॉल होने पर उन्हें हटा दिया जाएगा। फ्रायओ के कुछ प्रारंभिक संस्करणों पर, स्पष्ट रूप से एक बग है जो ऐप अपग्रेड पर भी फ़ाइलों को हटा देता है, इसलिए आप इसके लिए देखना चाहेंगे।

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

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