在 WebView (Android) 中保留数据

Posted

技术标签:

【中文标题】在 WebView (Android) 中保留数据【英文标题】:Retain data in WebView (Android) 【发布时间】:2010-11-27 01:47:27 【问题描述】:

我使用 WebView#loadDataWithBaseURL 将各种生成的 html/JS 加载到 Activity 中。有没有办法在 Activity 生命周期中一次又一次地加载?例如 - 用户去查看消息,然后再次调用应用程序。那时 - Activity 已停止并可能被销毁,当它再次加载时,我不想在加载用户已经查看的内容时打嗝。

【问题讨论】:

【参考方案1】:

例如 - 用户去检查 消息,然后再次调用该应用程序。 那时 - 活动是 停止并可能被摧毁

如果用户直接访问了Notification,或者点击了HOME,你的activity会停止但不会被销毁。在这些情况下,您的 WebView 不应更改内容,除非您更改它。

如果用户按下 BACK 或 android 由于内存限制需要关闭你,你的 Activity 将被销毁。

在 BACK 的情况下,用户明确告诉您离开,因此重新加载数据似乎是合理的。

在内存限制方式中,根据定义,设备内存不足,因此当您回到前台时,您将需要重新加载数据。

【讨论】:

我只想指出,在单击“主页”后恢复应用程序时,我总是会收到 onCreate 调用。 WebView 不支持加载数据调用的 HTML 的历史记录,这很烦人 关于您的 onCreate(),您手机上的某些东西正在像筛子一样泄漏内存,或者您在 onPause()/onStop() 代码中明确调用了 finish(),或者其他什么是发生这种情况会导致您的活动(或流程)被破坏然后重新启动。或者,也许您在清单中设置了标志,要求每次都启动新任务。【参考方案2】:

当我单击 HOME 并稍后我重新启动我的应用程序时,WebView 的内容保留了。 但是当我触发 Intent(例如条形码扫描仪)时,在 Intent 完成并返回我的应用程序后,我的应用程序中的 WebView 被重新加载。

当 Intent 返回时我可以保留我的 WebView 内容吗?

【讨论】:

以上是关于在 WebView (Android) 中保留数据的主要内容,如果未能解决你的问题,请参考以下文章

Webview - 如何在Rotate上保留当前页面

在 Android 2.1 中方向更改期间保存 WebView 滚动位置的问题

android webview:防止文本选择actionMode actionBar

如何在WebView Android中过滤手机和其他Web链接

android webview中的进度条

使 Android WebView 不存储 cookie 或密码