android清理其它应用缓存,Android中其他应用缓存清理的问题,求助~

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

private class QueryPkgSize extends IPackageStatsObserver.Stub {

private int posi;

public QueryPkgSize(int posi) {

// TODO Auto-generated constructor stub

this.posi = posi;

}

@Override

public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException {

// TODO Auto-generated method stub

long cacheSize = pStats.cacheSize;// 缓存大小

System.out.println("缓存:" + pStats.cacheSize);

long dataSize = pStats.dataSize;// 数据大小

long codeSize = pStats.codeSize;// 应用程序大小

appInfos.get(posi).setCacheSize(cacheSize);

appInfos.get(posi).setDataSize(dataSize);

appInfos.get(posi).setAppSize(codeSize);

appInfos.get(posi).setTotalSize(cacheSize + dataSize + codeSize);// 总大小

Log.e("报告",

"名字:" + appInfos.get(posi).getAppLable() + "包名:" + appInfos.get(posi).getAppPackageName() + "缓存大小:"

+ appInfos.get(posi).getCacheSize() + "数据大小:" + appInfos.get(posi).getDataSize() + "应用大小:" + appInfos.get(posi).getAppSize()

+ "总大小:" + appInfos.get(posi).getTotalSize());

onQueryPkgListener.refSize();

}

}

还有这个方法,我都使用了,不过这个方法利用系统BUG,不过貌似现在高版本被修复了

/**

* 利用系统bug来清理所有应用的缓存

*/

public void clearAllCache() {

try {

// 利用反射机制来得到清除软件缓存的方法

Method method = pm.getClass().getMethod("freeStorageAndNotify", Long.TYPE, IPackageDataObserver.class);

method.invoke(pm, Long.MAX_VALUE, new ClearPkgCache());

} catch (NoSuchMethodException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InvocationTargetException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

还有这个方法

/**

* 通过反射机制来清除对应包下的缓存

*

* @param pkgName

*/

public void clearCacheForPkgName(String pkgName) {

// 利用反射机制来得到清除软件缓存的方法

try {

Method method = pm.getClass().getMethod("deleteApplicationCacheFiles", String.class,

IPackageDataObserver.class);

method.invoke(pm, pkgName, new ClearPkgCache());

} catch (NoSuchMethodException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InvocationTargetException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值