پاک کردن cache در برنامه نویسی اندروید
سلام امروز میخواهیم به اموزش پاک کردن cache در برنامه نویسی اندروید بپردازیم.شاید گاهی اوقات لازم باشد در برناممان این دسترسی را به کاربر بدهیم که کش و دیتای برنامه را پاکسازی کند.
قبل از هرچیزی لازم است با حافظه کش تا حدودی اشنا شویم.به طور خلاصه اگر بخواهیم این حافظه را معرفی کنیم فایل های کش برنامه شامل داده هایی هستند که پس از اجرای اول بروی این حافظه ذخیره می شوند تا در اجرا های بعدی برنامه سرعت بارگذاری بالا برود.هدف ما در این اموزش پاکسازی داده های برناممان از این حافظه است.
کاری که ما میکنیم دقیقا مانند گزینه زیر عمل میکند که احتمالا با ان مواجه شده اید:
خب حالا به سراغ کد هایمان می رویم ما در اینجا از دو تابع استفاده میکنیم به این صورت که تابع اول کار پاکسازی را انجام می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 | public void clearApplicationData() { File cacheDirectory = getCacheDir(); File applicationDirectory = new File(cacheDirectory.getParent()); if (applicationDirectory.exists()) { String[] fileNames = applicationDirectory.list(); for (String fileName : fileNames) { if (!fileName.equals("lib")) { deleteFile(new File(applicationDirectory, fileName)); } } } } |
با کمی دقت در کد ها متوجه عملکرد ان می شویم.ابتدا مسیر فایل را داده ایم سپس بعد از بررسی های لازم برای حذف از تابع deleteFile استفاده میکنیم یعنی تابع دوم ما که کد های ان به این صورت میشود:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public static boolean deleteFile(File file) { boolean deletedAll = true; if (file != null) { if (file.isDirectory()) { String[] children = file.list(); for (int i = 0; i < children.length; i++) { deletedAll = deleteFile(new File(file, children[i])) && deletedAll; } } else { deletedAll = file.delete(); } } return deletedAll; } |
به همین راحتی کش برناممان را پاک میکنیم.امیدوارم اموزش مفید بوده باشه.
موفق باشید..
سلام
مهندس جان این کدها رو باید کجا قرار بدیم یک اکتیویتی جداگانه براش بسازیم میشه توضیح کامل بدین آموزش کاملشو اگه برام بفرستین ممنون میشم حق الزحمه هم تقدیم میشه
سلام اگر بخواییم از طریق برنامه خودمون cache برنامه دیگه رو پاک کنیم باید چ کرد ؟؟
میشه توضیح بدید
یا ارجاع بدید