4

我在 WebView 中遇到 Javascript 问题(使用 webview.getSettings().setJavascriptEnabled(true); 启用)嵌入了 Javascript 的 HTML 页面可以正确加载和显示,但是,我也在做的是每 10 次或30秒。当我进入我的测试设备(MK808 迷你电视)的外壳时,我使用“dumpsys meminfo”来查看进程的内存。每 5 秒显示一次我的应用程序进程的内存,我可以看到每当页面刷新时,应用程序的内存使用量会跳跃数 (4-10) 兆字节。这将持续大约 30 分钟左右,直到应用程序崩溃并在 WebViewCoreThread 中出现致命信号 11 错误,并且没有堆栈跟踪。

不断增加的内存(从大约 15000kb 开始):

在此处输入图像描述


未启用 javascript 时不会发生这些内存问题或错误。

每次刷新之前,我都会清除缓存(true)和 freeMemory(),以及所有其他数据库和缓存。

我还尝试在每次刷新后销毁 WebView 并创建一个全新的,但无济于事。

我可以通过创建一个新的应用程序项目并创建一个基于处理程序控制时间重新加载的 web 视图来轻松地重新解决这个问题。这似乎应该是一个普遍的问题,但我在这个主题上找不到任何东西。会不会是我的设备?

提前感谢您的帮助,我很乐意根据需要添加更多信息!

4

1 回答 1

0

尝试添加这个:

  //Injects the supplied Java object into this WebView. The object is injected into the 
    //JavaScript context of the main frame, using the supplied name. This allows the 
    //Java object's public methods to be accessed from JavaScript.
    WebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
于 2013-06-27T21:21:29.557 回答