我在WebView中遇到Javascript问题(使用webview.getSettings()启用.setJavascriptEnabled(true);)嵌入了Javascript的HTML页面加载并正确显示,但是,我也在做的是不断刷新屏幕每10或30秒。当我进入我的测试设备(MK808迷你电视)的外壳时,我使用“dumpsys meminfo”来查看进程的内存。每隔5秒显示我的应用程序进程的内存我可以看到每当页面刷新时,应用程序的内存使用量会跳过多个(4-10)兆字节。这种情况持续了大约30分钟左右,直到应用程序在WebViewCoreThread中发生致命信号11错误而崩溃,没有堆栈跟踪。
不断增加的记忆(从大约15000kb开始):
未启用javascript时,不会出现这些内存问题或错误。
我刷新之前每次都清除了clearCache(true)和freeMemory(),以及其他所有数据库和缓存清除。我还尝试在每次刷新后摧毁WebView并创建一个全新的WebView,但无济于事。
我可以通过制作一个新的应用程序项目并根据控制时间的处理程序重新加载webview来轻松地重现这个问题。这似乎应该是一个普遍的问题,但我找不到任何关于这个主题的内容。它可能是我的设备吗?
在此先感谢您的帮助,我很乐意根据需要添加更多信息!
答案 0 :(得分: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");