再次恢复应用程序时如何不重新加载webview?
Posted
技术标签:
【中文标题】再次恢复应用程序时如何不重新加载webview?【英文标题】:How to not reload webview when resuming app again? 【发布时间】:2018-01-06 06:26:54 【问题描述】:我制作了一个 webview 应用程序。一切正常。但是,当用户点击后退按钮并打开(恢复)应用程序时,它会重新加载 webview。我该如何预防?
MainActivity.java
public class MainActivity extends Activity
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.webView);
mWebView.loadUrl("http://www.example.org");
【问题讨论】:
【参考方案1】:所以基本上你要做的就是将你的活动状态保存在 saveInstanceState 上,
@Override
protected void onSaveInstanceState(Bundle bundle)
mWebView.saveState(bundle);
并且在您的 oncreate 中,您只需检查 savedstate 是否为 null,如果为 null,则 loadurl 否则为 restorestate。
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.webView);
if (savedInstanceState != null)
mWebView.restoreState(savedInstanceState);
else
mWebView.loadUrl("http://www.example.org");
这是您在恢复应用时恢复状态的方式。
【讨论】:
我完全按照你的解释做了,但是没有用,也没有错误。这是我的java文件hastebin.com/oqisurusez.scala 方向改变时会发生这种情况吗? 不。如果回击并再次打开,它只会重新加载网页。 不,我不是在谈论历史。当用户点击后退按钮时。它关闭(没有真正关闭,应用程序仍在后台打开),当再次打开时,webview 刷新。 Webview 仍在重新加载简历【参考方案2】:我找到了解决方案:
只需覆盖 OnPostResume 方法 并且 将此添加到您的主代码中
yourWevView.onResume();
它对我有用。
【讨论】:
我像这样覆盖 onPostResume @Override protected void onPostResume() super.onPostResume(); 在 mainactivity java 文件中,但不起作用。我应该把 yourwebview.onresume 放在哪里?以上是关于再次恢复应用程序时如何不重新加载webview?的主要内容,如果未能解决你的问题,请参考以下文章
Android WebView - 在不重新加载的情况下设置 HTML
Android - 恢复 Fragment WebView 状态以避免重新加载