2012-02-23 14 views
5

हटाने के लिए प्रोग्रामर ज़िम्मेदारी है, वर्तमान में, मेरे पास एक एप्लिकेशन है, जो एक अस्थायी स्क्रीनशॉट सहेज लेगा, और इसे फेसबुक के माध्यम से साझा करने दें। छवि बचत कोड अनुवर्ती के रूप में कम या कम है।क्या यह temp फ़ाइल

// Use external cache dir, as our image file is large (>1M) 
File outputDir = this.getExternalCacheDir(); 
File tempFile = File.createTempFile("CHEOK", "CHEOK", outputDir); 
// In Desktop's J2SE, this file will automatically be deleted, once my desktop 
// application quit. However, this is not the case for Android. My guess is, JVM 
// is not terminated, even our Android application had quit. 
tempFile.deleteOnExit(); 

मुझे पता भी मैं अपने Android आवेदन (सिस्टम दबाने "वापस" बटन द्वारा) छोड़ दिया, tempfile अभी भी हम deleteOnExit का उपयोग कर रहे है। मेरा अनुमान है कि JVM अभी तक समाप्त नहीं हुआ है।

क्या मुझे पता है, क्या यह हमारी अनुप्रयोग प्रोग्रामर ज़िम्मेदारी है, बनाई गई अस्थायी फ़ाइल को हटाने के लिए, गतिविधि के onDestroy के दौरान? यदि नहीं, तो आम सबसे अच्छा अभ्यास क्या है?

+0

मुझे लगता है कि एंड्रॉइड यादों को प्रबंधित करने के कारण यह ट्रिगर नहीं हुआ है, एक बैक बटन वास्तव में ऐप को मार नहीं देगा बल्कि इसे स्मृति में छोड़ देगा लेकिन सक्रिय नहीं होगा। मेरा एंड्रॉइड फोन एसडी कार्ड स्पेस हमेशा छोटा हो जाता है क्योंकि बहुत से ऐप्स किसी भी कैश/अस्थायी फ़ाइलों को नहीं हटाते हैं, मुझे यकीन नहीं है कि क्यों मुझे लगता है कि मुझे उनकी आवश्यकता नहीं होने के बाद उन्हें हटाने के लिए बेहतर है –

उत्तर

0

AFAIK हां, अब उन फ़ाइलों को हटाने की आपकी ज़िम्मेदारी है जो अब आवश्यक नहीं हैं (चाहे वे अस्थायी हों या नहीं)। ओएस यह नहीं जान सकता कि आपका ऐप उस फ़ाइल का उपयोग कब करेगा।

+0

क्या मुझे लगता है कि फ़ाइल तब तक रहेगी ऐप चल रहा है, भले ही अन्य ऐप्स भी चलें और अपनी अस्थायी फाइलें बनाएं? –

+0

हां, आप इसे मान सकते हैं। – m0skit0

+0

क्या आप कृपया इसका संदर्भ दिखा सकते हैं? इसके अलावा, मैंने यहां इसके बारे में एक पोस्ट बनाई है: http://stackoverflow.com/questions/17942700/do- समकालीन- फाइल-get-deleted-even-while-the-app-is-running –

1

यह घर (या बल्कि डिवाइस) को साफ रखने के लिए प्रत्येक एप्लिकेशन तक है। :)

इसका अर्थ है कि

  • JVM हमेशा जहाँ तक एंड्रॉयड बनाने और चलाने हटा दिया गया है चल रहा है। इसलिए डिवाइस को पुनरारंभ होने पर फ़ाइल हटा दी जानी चाहिए।
  • यह अच्छा मौका है कि यदि कोई ऐप बंद हो गया हो तो भी ऐप अस्थायी फ़ाइलों को छोड़ रहा है तो उपयोगकर्ता नाराज हो जाएगा।

तो जब आप इसके साथ काम करते हैं तो अस्थायी फ़ाइल को बंद करें। ऐप बाहर निकलने तक भी तब तक की आवश्यकता नहीं है!

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