时间:2021-05-20
使用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清除应用缓存的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android应用签名的两种方法一、使用pem签名(一)apk签名命令java–jarsignapk.jar[-w]publickey.x509[.pem]pr
Android实现按两次返回键退出程序(两种方法)第一种方法://是否退出程序privatestaticBooleanisExit=false;//定时触发器p
Android上杀掉进程的方式有两种,分别是System.exit(0)和Process.killProcess(Process.myPid()),这两种方法比
随着数据库的使用,数据库的Log是不断增长的,必须在它占满空间之前将它们清除掉。清除Log有两种方法。(1)自动清除法。开放数据库选项TruncLogonChk
在android中做图像镜像有很多方法,今天算是学习了!两种方法如下:复制代码代码如下://方法一Matrixmatrix=newMatrix();matrix