1.清理单个缓存
//系统设置界面
Intent intent = new Intent(
"android.settings.APPLICATION_DETAILS_SETTINGS");
intent.setData(Uri.parse("package:"
+ packageName));
startActivity(intent);
2.清理所有缓存,需要aidl文件
public void clearAll() {
try {
// 反射
Class type = PackageManager.class;
Method method = type.getDeclaredMethod("freeStorageAndNotify",
long.class, IPackageDataObserver.class);
// 接口回调
IPackageDataObserver mObserver = new IPackageDataObserver.Stub() {
@Override
public void onRemoveCompleted(String packageName,
boolean succeeded) throws RemoteException {
mHandler.obtainMessage(CLEARFINISH).sendToTarget();
}
};
// 方法调用
method.invoke(mPm, Integer.MAX_VALUE, mObserver);
} catch (Exception e) {
e.printStackTrace();
}
}
这里附上 ClearCacheDemo
本文介绍了两种清理Android应用缓存的方法:一是通过系统设置界面清理单个应用的缓存;二是利用AIDL文件及反射机制清理所有应用的缓存。
1008

被折叠的 条评论
为什么被折叠?



