Android清除应用缓存的两种方法
第一种
使用ActivityManager中的clearApplicationUserData方法,代码如下:
ActivityManageram=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); am.clearApplicationUserData();
这种方式的问题就是不知清除cache,连带应用的data也删除了。如下图所示:
第二种
使用PackageManager中的deleteApplicationCacheFiles方法,这个API是隐藏的,所以需要用反射来调用,代码如下:
PackageManagerpackageManager=context.getPackageManager(); Methodmethod; try{ method=PackageManager.class.getDeclaredMethod("deleteApplicationCacheFiles",String.class,IPackageDataObserver.class); method.invoke(packageManager,packageName,newClearUserDataObserver()); }catch(NoSuchMethodException|IllegalAccessException|InvocationTargetExceptione){ e.printStackTrace(); } staticclassClearUserDataObserverextendsIPackageDataObserver.Stub{ publicvoidonRemoveCompleted(finalStringpackageName,finalbooleansucceeded){ Log.i(TAG,"IPackageDataObserversucceeded:"+succeeded); } }
这种方式只会清除cache,有需要只清除缓存,可以是用这种方式。IPackageDataObserver需要自己放到项目的aidi文件夹中,如下图所示:
两种方式都需要有系统权限,声明为系统应用并且签系统签名才能调用成功。
以上就是Android清除应用缓存的两种方法的详细内容,更多关于Android清除应用缓存的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。