用户在使用我们所研发的App的时候,通常都会遇到如下的问题:

使用过程中可能会遇到应用程序或软件更新失败,因为用户的智能手机存储空间不足。 由于应用程序崩溃和其他问题,用户的数字设备运行速度比以前慢。 所有这些问题都是由于用户的存储空间不足造成的。 实际上,即使用户购买了128 GB或256 GB的手机,删除垃圾文件仍然很重要 在Android手机上清除缓存 定期。

因此,本文给大家分享一下,在研发app中常用的清除缓存数据和应用数据的功能如何实现?

缓存数据的含义是什么?

缓存数据表示应用或网站存储在Android手机或平板电脑中的所有媒体文件。 因此,每次使用应用程序时,它都会自动保存包括文件,图像等在内的缓存数据。 因此,下次加载此应用程序时,用户可以快速,顺利地获取目标信息。 如果仍然不知道缓存数据是什么,可以参考这些常见问题。

  1. Android上的“清除应用程序数据”和“清除应用程序缓存”有什么区别?
    缓存数据是Android设备的临时存储区域。 它可以加快用户的操作系统运行速度。 因此,当用户清除缓存Android时,用户几乎没有风险,而应用数据则扮演更重要的角色。 清除Android手机上的应用数据后,用户之前的所有数据和内容都将被删除。 因此,用户的应用将重置为其默认状态。

  2. 可以清除Android上的所有缓存应用数据吗?
    是。 清除Android上的缓存数据并不重要。 用户只需删除存储在内部存储空间中的临时文件即可。 可以在需要时自动从Internet加载缓存数据。 清除Android手机上的缓存后,用户不会丢失任何重要或敏感数据。

  3. 清除手机缓存后会发生什么?
    用户可以有效地释放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 程序常用功能《清除缓存》相关推荐

  1. vc++6.0获取磁盘基本信息_微信小程序——常用功能2:微信小程序用户登录,申请用户授权并获取用户基本信息...

    微信小程序--常用功能2:申请用户授权并获取用户基本信息 为了更好的用户体验,很多时候我们想要获取用户的基本信息,从而实现将信息呈现到用户界面.给用户划分地域.给用户分类等功能. 但是要想获取用户信息 ...

  2. Android开发常用功能 https://www.2cto.com/kf/201611/561847.html

    Android开发常用功能 2016-11-03 09:43:58          来源:EvanJames的专栏 收藏   我要投稿 1.定时器的实现 (1)采用Handler的postDelay ...

  3. Android程序一直吐司获取缓存记录失败 —— 极光推送

    问题: Android程序Toast提示 " 获取缓存记录失败 " ,看的很是别扭,而且想知道原因在哪里. 方案: 接入了极光推送所造成的原因. Android Studio双击S ...

  4. android手机常用功能,Windows Phone 7/Android手机常用功能对比

    据资讯网站Neowin报道,近日,微软发布了旗下手机操作系统平台WindowsPhone 7,智能手机领域的局势变得更加扑朔迷离.Neowin网站开辟专栏,就WP7和Android两大平台手机的诸多性 ...

  5. Android开发常用功能

    1.定时器的实现 (1)采用Handler的postDelayed(Runnable, long)方法 <strong>Handler handler = new Handler(); R ...

  6. android手机的功能,WP7/Android手机常用功能对比

    据资讯网站Neowin报道,近日,微软发布了旗下手机操作系统平台WindowsPhone 7,智能手机领域的局势变得更加扑朔迷离.Neowin网站开辟专栏,就WP7和Android两大平台手机的诸多性 ...

  7. android 最新功能介绍,Android Studio 常用功能介绍

    界面介绍 讲解1 这个界面,显示了我们使用 Android Studio时经常接触到的功能面板. Project 面板. 用于浏览项目文件. Project 面板会显示当前的所有的 module .  ...

  8. Android:程序锁功能的简单实现

    如我们所知,现在有很多牛逼的安全软件都带有程序锁的功能.当然,名字可能不一样,有的叫隐私保护,有的叫软件锁.等等.但是这种名字其实都是表达一种意思,就是可以给你手机里面的app加以保护.只有你给你的A ...

  9. 【微信小程序系列:二】小程序常用功能:跳转地图、扫一扫、人脸识别、拍照、拨打电话、调整屏幕亮度、文字可复制、监听截屏...

    一.先言: (- ̄▽ ̄)-,hello,微信小程序系列第二篇,介绍下小程序里的前端常用功能api,可以快速copy使用~ 二.文字可复制: 小程序页面里的文字默认是没有长按复制功能的,需要套个标签来实 ...

最新文章

  1. 关于SpringBoot项目通过jar包启动之后无法读取项目根路径静态资源
  2. Spring-JDBC表情符号不能存入数据库
  3. java 内部类 引用_在Java中如何从内部引用匿名内部类?
  4. 30亿美金投入!一文读懂英伟达性能凶残的Tesla V100牛在哪?
  5. Fastai-学习器训练
  6. 安卓学习 之 数据存储(六)
  7. nginx配置跨域、gzip加速、代理详细讲解
  8. 1小时搞懂设计模式之工厂模式(方法工厂)
  9. tftp服务器怎么开启linux,启动Linux下的TFTP服务器
  10. android ev3 蓝牙连接,分享一下自己研究EV3蓝牙通信原理的成果 (完结)
  11. mysql设置密码错误修改步骤
  12. python出现unexpected indent_Python、unexpected indent错误解决方法
  13. html新浪短域名api,新浪短链接API接口示例
  14. 浅聊智能推荐下的人物画像
  15. 无线广播风暴问题定位分析(omnipeek工具)
  16. KeilMDK编译错误Error: L6218E: Undefined symbol __aeabi_assert (referred from xxx.o).
  17. pb函数库之字符串操作函数
  18. 《人人都是产品经理》之我也是产品经理
  19. Matlab机器人工具箱(3-4):五自由度机械臂(计算力矩控制方法与roblocks)
  20. root联通定制机顶盒,root 机顶盒

热门文章

  1. ceph monitor paxos算法
  2. FFmpeg 基础库(一)视频格式
  3. java 时分秒加减_JAVA日期加减运算
  4. 技术团队里什么样的人会被清除?抢老板的工作干合适吗?
  5. 实例013:所有水仙花数 打印出所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方
  6. 制作一个简单HTML红色喜庆邀请函网页(HTML+CSS)
  7. 爬取图片到mysql数据库_爬取微博图片数据存到Mysql中遇到的各种坑\mysql存储图片\爬取微博图片...
  8. 金融业务-直接融资与间接融资的概念、区别和特点
  9. DIY智能小车篇(一):结构模块
  10. win10看不到家庭组计算机,win10专业版没有家庭组怎么办?一招帮你解决问题