मैं वर्तमान में एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं जो http अनुरोधों का उपयोग कर छवियां प्राप्त करता है। यदि मैं प्रदर्शन और बैंडविड्थ उपयोग में सुधार करने के लिए उन छवियों को कैश कर सकता हूं तो यह काफी सूजन होगी।एंड्रॉइड के कैश मैनेजर का उपयोग कैसे करें?
मैं एंड्रॉयड संदर्भ में CacheManager वर्ग भर में आया है, लेकिन मैं वास्तव में यह कैसे उपयोग करने के लिए पता नहीं है, या क्या यह वास्तव में होता है।
मैं पहले से ही इस उदाहरण के माध्यम से scoped, लेकिन मैं कुछ मदद की यह समझने की जरूरत है:
/core/java/android/webkit/gears/ApacheHttpRequestAndroid.java
इसके अलावा, संदर्भ कहता है:
"नेटवर्क अनुरोध इस घटक के लिए और अगर प्रदान की जाती हैं उन्हें कैश द्वारा हल नहीं किया जा सकता है, HTTP शीर्षलेख सामग्री के पुनर्मूल्यांकन के अनुरोध के लिए उपयुक्त के रूप में संलग्न हैं। "
मुझे यकीन नहीं है कि इसका मतलब क्या है या यह मेरे लिए कैसे काम करेगा, क्योंकि कैशमेनगर की getCacheFile केवल एक स्ट्रिंग यूआरएल और हेडर युक्त एक मानचित्र स्वीकार करता है। निश्चित नहीं है कि संलग्नक का मतलब क्या है।
एक व्याख्या या एक सरल कोड उदाहरण वास्तव में मेरे दिन करना होगा। धन्यवाद!
अद्यतन
यहाँ है कि मैं क्या अभी है। मैं स्पष्ट रूप से गलत कर रहा हूं, बस यह नहीं पता कि कहां है।
public static Bitmap getRemoteImage(String imageUrl) { URL aURL = null; URLConnection conn = null; Bitmap bmp = null; CacheResult cache_result = CacheManager.getCacheFile(imageUrl, new HashMap()); if (cache_result == null) { try { aURL = new URL(imageUrl); conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); cache_result = new CacheManager.CacheResult(); copyStream(is, cache_result.getOutputStream()); CacheManager.saveCacheFile(imageUrl, cache_result); } catch (Exception e) { return null; } } bmp = BitmapFactory.decodeStream(cache_result.getInputStream()); return bmp; }
क्या त्रुटियों आप इस कोड के साथ मिलता है? – Janusz
ई/AndroidRuntime (3097): गंभीर अपवाद: मुख्य ई/AndroidRuntime (3097): java.lang.NullPointerException ई/AndroidRuntime (3097): android.webkit.CacheManager.saveCacheFile (CacheManager.java:459) पर मैं जब कैश करने के लिए बचाने की कोशिश, एक इनाम कहा कि यदि यह संभव है मुझे पता है कि कैसे करना चाहते हैं प्राप्त होता है। ई/एंड्रॉइड रनटाइम (30 9 7): android.webkit.CacheManager.saveCacheFile (CacheManager.java:453) – HaMMeReD