2017-06-12 62 views
1

我有一个Android浏览器,我必须清除缓存,存储,饼干等选项如何清除所有WebView存储的信息?

的代码看起来是这样的:

webView.clearCache(true); 
webView.clearFormData(); 
webView.clearHistory(); 
webView.clearSslPreferences(); 
CookieManager.getInstance().removeAllCookies(null); 
CookieManager.getInstance().flush(); 

,这似乎对我所有的测试,但工作时我去google.com,我的旧搜索仍然存在。我没有清理什么?

谢谢。

+0

我不知道,但你可以尝试'CookieManager.getInstance()removeSessionCookie(。 );'? –

+0

找到解决方案'WebStorage.getInstance()。deleteAllData();' – casolorz

+0

@casolorz请看看我的回答 – oop

回答

0

找到了解决办法:

WebStorage.getInstance().deleteAllData(); 
0

我有一个root-access授予设备,发现调用WebStorage.getInstance().deleteAllData();和类似的代码并不在applicationDatadir/app_webview清除由WebView创建的cache

此外,该代码有时会导致致命错误像A/libc: Send stop signal to pid:16145 in void debuggerd_signal_handler(int, siginfo_t*, void*)

和它的(高速缓存)的大小不是那么小。

为了实现这一目标,你可以使用这个下面的代码片段:如果是喜欢`removeAllCookies`一样

public static void clearWebViewCachesCustom(Context context) { 
    try { 
     String dataDir = mContext.getPackageManager().getPackageInfo(context.getPackageName(), 0).applicationInfo.dataDir; 
     new File(dataDir + "/app_webview/").delete(); 
    } catch (Exception e) { 
     if (!MainActivity.deBugTest) Crashlytics.logException(e); 
     e.printStackTrace(); 
     e.getSuppressed(); 
    } 
}