【问题标题】:How to not reload webview when resuming app again?再次恢复应用程序时如何不重新加载webview?
【发布时间】: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");

    }

}

【问题讨论】:

    标签: android android-studio webview


    【解决方案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 放在哪里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    相关资源
    最近更新 更多