2017-02-08 1 views
0

я получил WebView, который реализуется так:Как предотвратить WebView перезагружать веб-страницы в Android

this.webView = (WebView) view.findViewById(R.id.typeform); 
     WebSettings webSettings = webView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     webSettings.setDomStorageEnabled(true); 
     webView.setWebViewClient(new WebViewClientHelper(activity)); 

Я не хочу, чтобы перезагрузить страницу, если я нажимаю кнопку назад и затем снова прийти к фрагменту , поэтому я осуществил что:

В onCreateView:

if (webViewBundle == null) { 
      webView.loadUrl(Constants.TYPEFORM_URL); 
     } else { 
      webView.restoreState(webViewBundle); 
     } 

В OnPause():

@Override 
    public void onPause() { 
     super.onPause(); 

     webViewBundle = new Bundle(); 
     webView.saveState(webViewBundle); 
    } 

Не знаете, почему это не работает. Любая рекомендация?

Заранее спасибо.

ответ

1

Если вы добираетесь до onCreateView, когда вы нажимаете кнопку «Назад», это означает, что вы каждый раз создаете новый экземпляр представления. У вас должен быть один экземпляр, и если вы хотите переопределить поведение, когда вернетесь к нему, выполните команду onResume.

+0

Хммм, если честно, я не совсем понимаю. Не могли бы вы объяснить это подробнее? –

+0

Несомненно. Я предлагаю, что, возможно, вы каждый раз создаете новый объект WebView. Когда вы сказали, что это не работает, вы не указали более подробную информацию - вы пытались отлаживать и видеть, действительно ли он набирает строку, которую вы хотите (возможно, вызывается только «webView.loadUrl»). – yakobom

Смежные вопросы