আরেকটি গুরুত্বপূর্ণ কৌশল হচ্ছে একই/অনুরূপ ডাটা ডাউনলোড করা পরিহার করা। দৃঢ়ভাবে ক্যাশে (caching) করার মাধ্যমে আপনি এটা করতে পারেন। সবসময় স্ট্যাটিক রিসোর্স ক্যাশে করুন, যার মধ্যে রয়েছে চাহিদাকৃত (অন-ডিমান্ড) ডাউনলোড যেমন পূর্ন সাইজের ইমেজ, যৌক্তিকভাবে যতটুকু দীর্ঘক্ষণ সম্ভব ততক্ষণ পর্যন্ত। আপনার অন-ডিমান্ড ক্যাশের সাইজ ব্যবস্থা করতে আপনাকে এটা নিয়মিত ফ্ল্যাশ করতে সক্রিয় করতে চাহিদাকৃত (অন-ডিমান্ড) রিসোর্স পৃথকভাবে স্টোর করা উচিত।
এটা নিশ্চিত করতে যে আপনার ক্যাশিং আপনার অ্যাপের মধ্যে পুরাতন ডাটা প্রদর্শন করার কারন না হয়, সময় বের করার ব্যাপারে নিশ্চিত হোন, যার মধ্যে রিকোয়েস্ট করা কনটেন্ট শেষবার আপডেট হয়েছিল এবং যখন মেয়াদ শেষ হয়েছিল, যার মধ্যে থেকে HTML কে রেসপন্স করা হেডারস। এটা আপনাকে স্থির করতে দেয় যখন সম্পৃক্ত কনটেন্ট রিফ্রেশড হওয়া উচিত।
long currentTime = System.currentTimeMillis());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
long expires = conn.getHeaderFieldDate("Expires", currentTime);
long lastModified = conn.getHeaderFieldDate("Last-Modified", currentTime);
setDataExpirationDate(expires);
if (lastModified < lastUpdateTime) {
// Skip update
} else {
// Parse update
}
এই পদ্ধতি ব্যবহার করে, আপনি কার্যকরীভাবে ডায়নামিক কনটেন্ট ক্যাশে করতে পারেন যখন নিশ্চিত করে এটা আপনার অ্যাপের মধ্যে পুরাতন ডাটা প্রদর্শন করবে না।
আপনি কোন ব্যবস্থাপনা ছাড়া বহিরাগত ক্যাশে ডিরেক্টরীতে অসংবেদনশীল ডাটা ক্যাশে করতে পারেন:
Context.getExternalCacheDir();
ব্যতিক্রমভাবে, আপনি সুষ্ঠু ব্যবস্থাপিত/ নিরাপদ অ্যাপলিকেশন ব্যবহার করতে পারেন। উল্লেখ্য এই অন্তর্গত ক্যাশে ফ্ল্যাশ হতে পারে যখন সিস্টেম সহজপ্রাপ্য স্টোরেজে কমভাবে (Low) রান করছে।
Context.getCache();
ক্যাশে লোকেশনে স্টোর হওয়া ফাইল মুছে যেতে পারে যখন অ্যাপলিকেশন আন-ইনস্টল করা হয়।