Android 에서 캐 시 를 지 우 는 두 가지 방법

제 1 종
Activity Manager 의 clear 응용 프로그램 UserData 방법 을 사용 합 니 다.코드 는 다음 과 같 습 니 다.

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 폴 더 에 직접 넣 어야 합 니 다.

두 가지 방식 모두 시스템 권한 이 있어 야 시스템 응용 이 라 고 설명 하고 시스템 서명 을 해 야 호출 에 성공 할 수 있 습 니 다.
이상 은 안 드 로 이 드 가 캐 시 를 지 우 는 두 가지 방법의 상세 한 내용 입 니 다.안 드 로 이 드 가 캐 시 를 지 우 는 것 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기