在Android中以编程方式清除应用数据

时间:2016-10-03 03:13:07

标签: android webview

在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除外)能够解决这个问题。

由于

1 个答案:

答案 0 :(得分:1)

如果有其他人有这个问题,我这样做是为了解决它:

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