在KitKat及以上版本中,此代码完美无缺:
ActivityManager manager = ((ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE));
manager.clearApplicationUserData();
它会擦除所有应用程序设置,任何内部数据库,webview缓存等。这很棒。
我想编写一些代码,对于版本低于KitKat的用户也会做同样的事情。
我试过了:
Runtime runtime = Runtime.getRuntime();
runtime.exec("pm clear com.example.myapp");
那不起作用。
也尝试过:
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
那不起作用。
还在webview上尝试了一堆clearCache()
,clearHistory()
,.setAppCacheEnabled(false)
等。没有运气。
基本上,我最大的问题是webview似乎仍在缓存数据(即如果我通过webview登录到网站,我希望能够永久删除该会话并将用户注销) 。我没有做任何事情(clearApplicationUserData
除外)能够解决这个问题。
由于
答案 0 :(得分:1)
如果有其他人有这个问题,我这样做是为了解决它:
CookieSyncManager syncManager = CookieSyncManager.createInstance(activity);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
cookieManager.removeSessionCookie();
syncManager.stopSync();
syncManager.sync();