如何在Android中停止自动刷新WebView

时间:2012-05-31 17:46:14

标签: android webview

Iam在我的应用程序中使用WebView加载远程url。它能够成功加载远程URL。但是每当我尝试在背景到前台之间切换我的应用程序时,有时我的包含WebView的当前活动就会刷新。如何当我从后台切换到前景时,我避免刷新我的WebView。我在我的Activity.May应用程序版本中根本不使用onResume()2.2.My AndroidManifest.xml文件中的Activity标记如下。

    <activity 
        android:name=".Main"
        android:screenOrientation="portrait" android:configchanges="orientation|keyboardHidden|locale|uiMode|mcc|mnc|touchscreen|keyboard">
    </activity>

感谢和安培;此致  Venkat。

3 个答案:

答案 0 :(得分:2)

尝试覆盖WebViewClient,例如:

        webView.setWebViewClient(new WebViewClient(){
    private boolean alreadyLoaded = false;  
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
                if (alreadyLoaded)
                   return;
                alreadyLoaded = true;
                super.onPageStarted(view,url,favicon);
        }

        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            super.onReceivedError(view, errorCode, description, failingUrl);

        }


        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
        }

    });

答案 1 :(得分:0)

将android:launchMode =“singleTask”添加到AndroidManifest.xml中的主要活动

答案 2 :(得分:0)

您必须保存网页浏览的状态,并在onCreatesavedInstanceState != null恢复该状态。 webview有一个函数saveState(..),您可以使用该函数将状态保存在活动的onSaveInstanceState(..)中。

在您的活动中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    if(savedInstanceState != null){
        mWebView.restoreState(savedInstanceState);
    }
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    mWebView.saveState(outState);
}