Android清除应用缓存的两种方法

 更新时间:2021年03月13日 11:55:15   作者:lebronzhen  
这篇文章主要介绍了Android清除应用缓存的两种方法,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下

第一种

使用ActivityManager中的clearApplicationUserData方法,代码如下:

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.clearApplicationUserData();

这种方式的问题就是不知清除cache,连带应用的data也删除了。如下图所示:

第二种

使用PackageManager中的deleteApplicationCacheFiles方法,这个API是隐藏的,所以需要用反射来调用,代码如下:

PackageManager packageManager = context.getPackageManager();
Method method;
try {
  method = PackageManager.class.getDeclaredMethod("deleteApplicationCacheFiles", String.class, IPackageDataObserver.class);
  method.invoke(packageManager, packageName, new ClearUserDataObserver());
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
  e.printStackTrace();
}

static class ClearUserDataObserver extends IPackageDataObserver.Stub {
  public void onRemoveCompleted(final String packageName, final boolean succeeded) {
    Log.i(TAG, "IPackageDataObserver succeeded: " + succeeded);
  }
}

这种方式只会清除cache,有需要只清除缓存,可以是用这种方式。IPackageDataObserver需要自己放到项目的aidi文件夹中,如下图所示:

两种方式都需要有系统权限,声明为系统应用并且签系统签名才能调用成功。

以上就是Android清除应用缓存的两种方法的详细内容,更多关于Android清除应用缓存的资料请关注脚本之家其它相关文章!

相关文章

  • Android控件之TabHost用法实例分析

    Android控件之TabHost用法实例分析

    这篇文章主要介绍了Android控件之TabHost用法,以完整实例形式较为详细的分析了TabHost控件实现选项卡的相关技巧,需要的朋友可以参考下
    2015-09-09
  • 浅析Android Service中实现弹出对话框的坑

    浅析Android Service中实现弹出对话框的坑

    这篇文章主要介绍了Android Service中实现弹出对话框的坑,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Android的VSYNC机制和UI刷新流程示例详解

    Android的VSYNC机制和UI刷新流程示例详解

    这篇文章主要为大家介绍了Android的VSYNC机制和UI刷新流程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Android连接服务器端的Socket的实例代码

    Android连接服务器端的Socket的实例代码

    这篇文章主要介绍了Android连接服务器端的Socket的实例代码,需要的朋友可以参考下
    2017-05-05
  • Android自定义ListView单击事件失效的解决方法

    Android自定义ListView单击事件失效的解决方法

    这篇文章主要为大家详细介绍了Android自定义ListView单击事件失效的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 仿网易新闻客户端头条ViewPager嵌套实例

    仿网易新闻客户端头条ViewPager嵌套实例

    正确使用requestDisallowInterceptTouchEvent(boolean flag)方法,下面为大家介绍下外层ViewPager布局的实例,感兴趣的朋友可以参考下哈
    2013-06-06
  • Android中使用DialogFragment编写对话框的实例教程

    Android中使用DialogFragment编写对话框的实例教程

    这篇文章主要介绍了Android中使用DialogFragment编写对话框的实例教程,DialogFragment也是一种Fragment,因而管理生命周期时比较给力,需要的朋友可以参考下
    2016-04-04
  • Android多种支付方式的实现示例

    Android多种支付方式的实现示例

    App的支付流程,添加多种支付方式,不同的支付方式,对应的操作不一样,有的会跳转到一个新的webview,有的会调用系统浏览器,有的会进去一个新的表单页面,等等,本文就给大家详细介绍一下Android 多种支付方式的优雅实现,需要的朋友可以参考下
    2023-09-09
  • Android TextView高级显示技巧实例小结

    Android TextView高级显示技巧实例小结

    这篇文章主要介绍了Android TextView高级显示技巧,结合实例形式总结分析了Android TextView控件进行文字与图片显示的相关操作技巧,需要的朋友可以参考下
    2016-10-10
  • Android评分控件RatingBar使用实例解析

    Android评分控件RatingBar使用实例解析

    这篇文章主要为大家详细介绍了Android评分控件RatingBar使用实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论