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