2016-10-03 2 views
1

킷캣에서 이상에서,이 코드는 완벽하게 작동합니다 :앱 데이터 지우기 프로그래밍 방식으로 안드로이드

ActivityManager manager = ((ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE)); 
manager.clearApplicationUserData(); 

그것은 응용 프로그램 설정을 모두 버리고, 내부 데이터베이스, 웹보기 캐시 등이 좋아요.

KitKat 이하 버전 사용자에게도 똑같은 작업을 수행 할 코드를 작성하고 싶습니다.

이 나는 ​​시도했다 : 작동하지 않습니다

Runtime runtime = Runtime.getRuntime(); 
runtime.exec("pm clear com.example.myapp"); 

.

는 또한 시도 : 작동하지 않습니다

CookieSyncManager.createInstance(this); 
CookieManager cookieManager = CookieManager.getInstance(); 
cookieManager.removeAllCookie(); 

.

또한 웹보기에서 clearCache(), clearHistory(), .setAppCacheEnabled(false) 등의 묶음을 시도했습니다. 불운.

기본적으로 가장 큰 문제는 webview가 여전히 데이터 캐싱을하는 것입니다 (즉, webview를 통해 사이트에 로그인 한 경우 해당 세션을 영구히 삭제하고 사용자를 로그 아웃 할 수 있기를 원합니다). 내가하지 않는 한 (clearApplicationUserData 제외)이 문제를 해결할 수 있습니다. 다른 사람이 내가 그것을 해결하기 위해 이런 짓을이 문제가있는 경우

감사

+1

힌트 : 당신의 편집이 (자신의 질문에 완벽하게 괜찮 응답) 응답으로 게시해야하며, 다음 표시해야 다른 사람들이 귀하의 문제가 해결되었음을 알 수 있도록 자신의 대답을 수락 함 –

답변

1

:

   CookieSyncManager syncManager = CookieSyncManager.createInstance(activity); 
       CookieManager cookieManager = CookieManager.getInstance(); 
       cookieManager.removeAllCookie(); 
       cookieManager.removeSessionCookie(); 
       syncManager.stopSync(); 
       syncManager.sync(); 
관련 문제