Android - WebView 在简历中死亡

Posted

技术标签:

【中文标题】Android - WebView 在简历中死亡【英文标题】:Android - WebView dies on resume 【发布时间】:2010-12-15 09:12:29 【问题描述】:
    我有一些数据显示在 WebView 中的 Activity,我使用 WebView#loadDataWithBaseURL 加载这些数据 然后我有/单击触发android.content.Intent.ACTION_SEND 的菜单选项 从选择器中选择电子邮件 Google 电子邮件出现(如预期) 放弃电子邮件并点击返回按钮 WebView 的操作尝试resume Bang - 我在 WebView.java if (mWebViewCore.getSettings().getNeedInitialFocus()) 的第 4380 行收到 NullPonterException,因为 mWebViewCore 现在为空

代码中 mWebViewCore 无效的唯一位置是 WebView#destroy - 我如何从中恢复?我是否需要重新创建浏览器并重新加载我的数据,这似乎很浪费?在这一点上,我真的很感谢你的好建议

【问题讨论】:

【参考方案1】:

好吧,我可以告诉你,我刚刚使用WebViewloadDataWithBaseURL() 进行了测试,我加载的页面有一个链接。正如预期的那样,单击链接会打开浏览器应用程序。从浏览器中按 BACK 按钮可以将我的应用程序带回 WebView 就好了,没有例外。

所以,要么ACTION_SEND/Gmail 有点特别,要么你的应用有更多的事情发生。

你能在一个可以在某处发布的小项目中复制这个问题吗?

【讨论】:

我也有一种感觉,它只发生在 gmail 上。我尝试了 facebook 和 twitroid,它工作正常,但从 gmail 回来只会杀了我。我会把它放到独立项目中并尝试 顺便说一句 - 我做了很多次你描述的场景,没有问题。这是 ACTION_SEND 和 GMail 特有的 - 我很确定 如果属实,那就太疯狂了,这表明 Android 中的某个地方存在错误。如果您能想出一个可重现的方案,请将症状和代码发布到b.android.com。 JBQ 正在尽职尽责地关注新问题。 没关系...完全是我的错。实际上 - 过度工程的光辉例子,我不必要地使用服务回调并且不得不对我的部分构建的 WebView 将被放弃(用户单击“返回”按钮)并且我不得不在那里执行 WebView#destroy 的情况进行处理,这正在杀死什么我在上面的场景中。我回到了简单的处理程序,它工作正常

以上是关于Android - WebView 在简历中死亡的主要内容,如果未能解决你的问题,请参考以下文章

android webView 的 webSettings 最全的说明

android webView 的 webSettings 最全的说明

将Playbuzz加载脚本加载到Android中的WebView中

Android:将 sqlite 数据库内容加载到 webview

Android Nougat 7.1 在启动 WebView 后重置区域设置

Android:控件WebView显示网页