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实现多级树形选择列表

    Android实现多级树形选择列表

    这篇文章主要为大家详细介绍了Android实现多级树形选择列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Android编程之方向传感器用法示例

    Android编程之方向传感器用法示例

    这篇文章主要介绍了Android编程之方向传感器用法,结合实例形式分析了Android方向传感器的定义、监听及事件响应相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Android ListView自定义Adapter实现仿QQ界面

    Android ListView自定义Adapter实现仿QQ界面

    这篇文章主要为大家详细介绍了ListView自定义Adapter实现仿QQ界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Android编程布局(Layout)之AbsoluteLayout用法实例分析

    Android编程布局(Layout)之AbsoluteLayout用法实例分析

    这篇文章主要介绍了Android编程布局(Layout)之AbsoluteLayout用法,结合实例形式简单分析了Android绝对布局AbsoluteLayout的实现方法,需要的朋友可以参考下
    2015-12-12
  • Android自定义View实现投票进度条

    Android自定义View实现投票进度条

    这篇文章主要为大家详细介绍了Android自定义View实现投票进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Android 开发之dataBinding与ListView及事件

    Android 开发之dataBinding与ListView及事件

    这篇文章主要介绍了Android 开发之dataBinding与ListView及事件的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • Android Service详解及示例代码

    Android Service详解及示例代码

    本文主要介绍Android Service,在Android应用开发过程中,Service 会经常用到,这里对Service 的概念,生命周期等做了详细介绍,并附示例代码,有需要的朋友可以参考下
    2016-08-08
  • Android面向切面基于AOP实现登录拦截的场景示例

    Android面向切面基于AOP实现登录拦截的场景示例

    这篇文章主要为大家介绍了Android面向切面基于AOP实现登录拦截的场景示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Android  LayoutInflater.inflate()详解及分析

    Android LayoutInflater.inflate()详解及分析

    这篇文章主要介绍了Android LayoutInflater.inflate()详解及分析的相关资料,需要的朋友可以参考下
    2017-01-01
  • Android自定义控件实现九宫格解锁功能

    Android自定义控件实现九宫格解锁功能

    这篇文章主要为大家详细介绍了Android自定义控件实现九宫格解锁功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05

最新评论