Android 程序常用功能《清除缓存》
用户在使用我们所研发的App的时候,通常都会遇到如下的问题:
使用过程中可能会遇到应用程序或软件更新失败,因为用户的智能手机存储空间不足。 由于应用程序崩溃和其他问题,用户的数字设备运行速度比以前慢。 所有这些问题都是由于用户的存储空间不足造成的。 实际上,即使用户购买了128 GB或256 GB的手机,删除垃圾文件仍然很重要 在Android手机上清除缓存
定期。
因此,本文给大家分享一下,在研发app中常用的清除缓存数据和应用数据的功能如何实现?
缓存数据的含义是什么?
缓存数据表示应用或网站存储在Android手机或平板电脑中的所有媒体文件。 因此,每次使用应用程序时,它都会自动保存包括文件,图像等在内的缓存数据。 因此,下次加载此应用程序时,用户可以快速,顺利地获取目标信息。 如果仍然不知道缓存数据是什么,可以参考这些常见问题。
Android上的“清除应用程序数据”和“清除应用程序缓存”有什么区别?
缓存数据是Android设备的临时存储区域。 它可以加快用户的操作系统运行速度。 因此,当用户清除缓存Android时,用户几乎没有风险,而应用数据则扮演更重要的角色。 清除Android手机上的应用数据后,用户之前的所有数据和内容都将被删除。 因此,用户的应用将重置为其默认状态。可以清除Android上的所有缓存应用数据吗?
是。 清除Android上的缓存数据并不重要。 用户只需删除存储在内部存储空间中的临时文件即可。 可以在需要时自动从Internet加载缓存数据。 清除Android手机上的缓存后,用户不会丢失任何重要或敏感数据。清除手机缓存后会发生什么?
用户可以有效地释放Android手机或平板电脑上的更多内存空间。 此外,它可以改善电池寿命,加快数字设备的速度并解决一些Android系统问题,例如 Android被困在Odin模式中,下载模式,软砖等
如何在Android中清除缓存?
这里直接给大家展示一下,应用程序中的清除缓存功能,如下图:
如何通过程序的方式实现如上图的功能?
/*** @author 拉莫帅* @date 2022/3/18* @address* @Desc 本地存储工具类*/
public class CacheDataManager {/*** 获取缓存大小** @param context* @return* @throws Exception*/public static String getTotalCacheSize(Context context) throws Exception {long cacheSize = getFolderSize(context.getCacheDir());if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {cacheSize += getFolderSize(context.getExternalCacheDir());}return getFormatSize(cacheSize);}/*** 清除缓存** @param context*/public static void clearAllCache(Context context) {deleteDir(context.getCacheDir());if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {deleteDir(context.getExternalCacheDir());}}private static boolean deleteDir(File dir) {if (dir != null && dir.isDirectory()) {String[] children = dir.list();for (int i = 0; i < children.length; i++) {boolean success = deleteDir(new File(dir, children[i]));if (!success) {return false;}}}return dir.delete();}public static long getFolderSize(File file) throws Exception {long size = 0;try {File[] fileList = file.listFiles();for (int i = 0; i < fileList.length; i++) {// 如果下面还有文件if (fileList[i].isDirectory()) {size = size + getFolderSize(fileList[i]);} else {size = size + fileList[i].length();}}} catch (Exception e) {e.printStackTrace();}return size;}/*** 格式化单位** @param size*/public static String getFormatSize(double size) {double kiloByte = size / 1024;if (kiloByte < 1) {return size + "Byte";}double megaByte = kiloByte / 1024;if (megaByte < 1) {BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB";}double gigaByte = megaByte / 1024;if (gigaByte < 1) {BigDecimal result2 = new BigDecimal(Double.toString(megaByte));return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB";}double teraBytes = gigaByte / 1024;if (teraBytes < 1) {BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";}BigDecimal result4 = new BigDecimal(teraBytes);return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB";}
}
SettingActivity中实现初始化缓存大小,并清除缓存
1.首先初始化布局,获取缓存大小
2.清除缓存
/*** 创建Handler* 接收消息*/@SuppressLint("HandlerLeak")private Handler handler = new Handler() {public void handleMessage(android.os.Message msg) {switch (msg.what) {case 0:Toast.makeText(SettingActivity.this, "清理完成", Toast.LENGTH_SHORT).show();try {canch.setText(CacheDataManager.getTotalCacheSize(SettingActivity.this));} catch (Exception e) {e.printStackTrace();}}}};/*** 创建内部类,清除缓存*/class clearCache implements Runnable {@Overridepublic void run() {try {CacheDataManager.clearAllCache(SettingActivity.this);Thread.sleep(1000);if (CacheDataManager.getTotalCacheSize(SettingActivity.this).startsWith("0")) {handler.sendEmptyMessage(0);}} catch (Exception e) {return;}}}
Android 程序常用功能《清除缓存》相关推荐
- vc++6.0获取磁盘基本信息_微信小程序——常用功能2:微信小程序用户登录,申请用户授权并获取用户基本信息...
微信小程序--常用功能2:申请用户授权并获取用户基本信息 为了更好的用户体验,很多时候我们想要获取用户的基本信息,从而实现将信息呈现到用户界面.给用户划分地域.给用户分类等功能. 但是要想获取用户信息 ...
- Android开发常用功能 https://www.2cto.com/kf/201611/561847.html
Android开发常用功能 2016-11-03 09:43:58 来源:EvanJames的专栏 收藏 我要投稿 1.定时器的实现 (1)采用Handler的postDelay ...
- Android程序一直吐司获取缓存记录失败 —— 极光推送
问题: Android程序Toast提示 " 获取缓存记录失败 " ,看的很是别扭,而且想知道原因在哪里. 方案: 接入了极光推送所造成的原因. Android Studio双击S ...
- android手机常用功能,Windows Phone 7/Android手机常用功能对比
据资讯网站Neowin报道,近日,微软发布了旗下手机操作系统平台WindowsPhone 7,智能手机领域的局势变得更加扑朔迷离.Neowin网站开辟专栏,就WP7和Android两大平台手机的诸多性 ...
- Android开发常用功能
1.定时器的实现 (1)采用Handler的postDelayed(Runnable, long)方法 <strong>Handler handler = new Handler(); R ...
- android手机的功能,WP7/Android手机常用功能对比
据资讯网站Neowin报道,近日,微软发布了旗下手机操作系统平台WindowsPhone 7,智能手机领域的局势变得更加扑朔迷离.Neowin网站开辟专栏,就WP7和Android两大平台手机的诸多性 ...
- android 最新功能介绍,Android Studio 常用功能介绍
界面介绍 讲解1 这个界面,显示了我们使用 Android Studio时经常接触到的功能面板. Project 面板. 用于浏览项目文件. Project 面板会显示当前的所有的 module . ...
- Android:程序锁功能的简单实现
如我们所知,现在有很多牛逼的安全软件都带有程序锁的功能.当然,名字可能不一样,有的叫隐私保护,有的叫软件锁.等等.但是这种名字其实都是表达一种意思,就是可以给你手机里面的app加以保护.只有你给你的A ...
- 【微信小程序系列:二】小程序常用功能:跳转地图、扫一扫、人脸识别、拍照、拨打电话、调整屏幕亮度、文字可复制、监听截屏...
一.先言: (- ̄▽ ̄)-,hello,微信小程序系列第二篇,介绍下小程序里的前端常用功能api,可以快速copy使用~ 二.文字可复制: 小程序页面里的文字默认是没有长按复制功能的,需要套个标签来实 ...
最新文章
- 关于SpringBoot项目通过jar包启动之后无法读取项目根路径静态资源
- Spring-JDBC表情符号不能存入数据库
- java 内部类 引用_在Java中如何从内部引用匿名内部类?
- 30亿美金投入!一文读懂英伟达性能凶残的Tesla V100牛在哪?
- Fastai-学习器训练
- 安卓学习 之 数据存储(六)
- nginx配置跨域、gzip加速、代理详细讲解
- 1小时搞懂设计模式之工厂模式(方法工厂)
- tftp服务器怎么开启linux,启动Linux下的TFTP服务器
- android ev3 蓝牙连接,分享一下自己研究EV3蓝牙通信原理的成果 (完结)
- mysql设置密码错误修改步骤
- python出现unexpected indent_Python、unexpected indent错误解决方法
- html新浪短域名api,新浪短链接API接口示例
- 浅聊智能推荐下的人物画像
- 无线广播风暴问题定位分析(omnipeek工具)
- KeilMDK编译错误Error: L6218E: Undefined symbol __aeabi_assert (referred from xxx.o).
- pb函数库之字符串操作函数
- 《人人都是产品经理》之我也是产品经理
- Matlab机器人工具箱(3-4):五自由度机械臂(计算力矩控制方法与roblocks)
- root联通定制机顶盒,root 机顶盒
热门文章
- ceph monitor paxos算法
- FFmpeg 基础库(一)视频格式
- java 时分秒加减_JAVA日期加减运算
- 技术团队里什么样的人会被清除?抢老板的工作干合适吗?
- 实例013:所有水仙花数 打印出所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方
- 制作一个简单HTML红色喜庆邀请函网页(HTML+CSS)
- 爬取图片到mysql数据库_爬取微博图片数据存到Mysql中遇到的各种坑\mysql存储图片\爬取微博图片...
- 金融业务-直接融资与间接融资的概念、区别和特点
- DIY智能小车篇(一):结构模块
- win10看不到家庭组计算机,win10专业版没有家庭组怎么办?一招帮你解决问题