试图找出为什么我无法从多个网页浏览中清除缓存,我似乎得到一个强制关闭错误,当我有这样的代码如下。然而,当它只是1 webview它工作正常。任何建议的人。
由于多个Webview无效的部分
Preference customPref = (Preference) findPreference("clearcache");
customPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
// When Cache Preference is clicked
public boolean onPreferenceClick(Preference preference) {
Toast.makeText(getBaseContext(), "Cache Cleared",
Toast.LENGTH_LONG).show();
WebViewClientDemoActivity.web.clearCache(true);
Commercial.web4.clearCache(true);
Community.web2.clearCache(true);
Distributors.web6.clearCache(true);
Downloads.web7.clearCache(true);
EnlightenInfoPage.web4.clearCache(true);
Support.web3.clearCache(true);
return false;
}
});
它的作品就是这个
WebViewClientDemoActivity.web.clearCache(true);
所有ove webview都是独立的webview并且习惯使用,是我没有的声明内容或类似的内容。
或者,如果您知道清除应用程序缓存而不是数据的方法,只需使用“首选项”缓存单击
logcat的
08-29 20:46:14.413: E/AndroidRuntime(337): FATAL EXCEPTION: main
08-29 20:46:14.413: E/AndroidRuntime(337): java.lang.NullPointerException
08-29 20:46:14.413: E/AndroidRuntime(337): at com.jaisonbrooks.enlighten.Prefs$1.onPreferenceClick(Prefs.java:60)
08-29 20:46:14.413: E/AndroidRuntime(337): at android.preference.Preference.performClick(Preference.java:812)
08-29 20:46:14.413: E/AndroidRuntime(337): at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:190)
08-29 20:46:14.413: E/AndroidRuntime(337): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
08-29 20:46:14.413: E/AndroidRuntime(337): at android.widget.ListView.performItemClick(ListView.java:3382)
08-29 20:46:14.413: E/AndroidRuntime(337): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
08-29 20:46:14.413: E/AndroidRuntime(337): at android.os.Handler.handleCallback(Handler.java:587)
08-29 20:46:14.413: E/AndroidRuntime(337): at android.os.Handler.dispatchMessage(Handler.java:92)
08-29 20:46:14.413: E/AndroidRuntime(337): at android.os.Looper.loop(Looper.java:123)
08-29 20:46:14.413: E/AndroidRuntime(337): at android.app.ActivityThread.main(ActivityThread.java:4627)
08-29 20:46:14.413: E/AndroidRuntime(337): at java.lang.reflect.Method.invokeNative(Native Method)
08-29 20:46:14.413: E/AndroidRuntime(337): at java.lang.reflect.Method.invoke(Method.java:521)
08-29 20:46:14.413: E/AndroidRuntime(337): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-29 20:46:14.413: E/AndroidRuntime(337): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-29 20:46:14.413: E/AndroidRuntime(337): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:1)
也许其中一个webview是null,它永远不会很好地访问另一个活动的UI元素。此外,只有在您完成所有活动至少一次后才会初始化Web视图。为每个Web元素添加空检查
if(Commercial.web4 != null)
Commercial.web4.clearCache(true);
但是我认为它的设计不好有静态元素,这些活动只有一个实例吗?您必须确保所有活动都是单身人士
修改强>
如果您想删除自己应用的Cachedirectory,可以使用
try {
File dir = context.getCacheDir();
if (dir != null && dir.isDirectory()) {
deleteDir(dir);
}
} catch (Exception e) {
e.printStackTrace();
}