我有一个WebView
只显示来自外部 SD 卡的图像。这很好用,但是如果图像被新数据覆盖,WebView
则不会更新图像。
这更令人好奇,因为它WebView
是在活动方法中全新创建onCreate
的。这是我的代码:
@Override
public void onCreate(Bundle savedInstanceState)
{
Log.d(TAG, "Creating Viewer");
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Bundle extras = intent.getExtras();
String imagePath = extras.getString("imgFile");
shareImage(Uri.fromFile(new File(imagePath)));
setContentView(R.layout.viewer_test);
WebView viewer = (WebView) findViewById(R.id.imageViewer);
viewer.getSettings().setAllowFileAccess(true);
viewer.getSettings().setBuiltInZoomControls(false);
viewer.getSettings().setLoadWithOverviewMode(true);
viewer.getSettings().setUseWideViewPort(true);
viewer.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
String filename = "file://"+ imagePath;
String html = "<html><head></head><body bgcolor=\"#000000\"><center><img src=\""+ filename + "\"></center></body></html>";
viewer.loadDataWithBaseURL(null, html, "text/html","utf-8", null);
viewer.reload();
}
imagePath
在将路径发送到此活动之前,保存的路径处的图像被另一个活动覆盖。然而,WebView
仍然显示旧的图像数据。
如您所见,我已经尝试设置缓存模式并尝试手动重新加载WebView
,但不幸的是没有运气。
我还检查了文件管理器,SD 卡上的图像被新数据覆盖。我试图多次覆盖该文件,但这也不起作用。不知何故,图像数据被缓存在某处或某处。我怎样才能避免这种情况并每次都加载新数据?
(显然,创建一个具有不同文件名的新文件可以正常工作,但我想替换旧文件。)