Android清除应用缓存的两种方法
程序员文章站
2022-03-23 16:41:38
第一种使用activitymanager中的clearapplicationuserdata方法,代码如下:activitymanager am = (activitymanager) getsyst...
第一种
使用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清除应用缓存的资料请关注其它相关文章!
上一篇: python捕获警告的三种方法