Запрос веб-просмотра Android застрял в ожидании навсегда

#android #webview

#Android #webview

Вопрос:

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

 webView = WebView(context).let { webView -gt;  webView.layoutParams = LinearLayout.LayoutParams(  LinearLayout.LayoutParams.MATCH_PARENT,  LinearLayout.LayoutParams.WRAP_CONTENT  )  webView.clearCache(true)  WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG)  webView.settings.javaScriptEnabled = true  webView.settings.domStorageEnabled = true  webView.measure(100, 100)  webView.settings.useWideViewPort = true  webView.settings.loadWithOverviewMode = true  webView.addJavascriptInterface(AndroidJavascriptInterface(environment), webViewHook)  webView.webViewClient = webViewClient  webView.webChromeClient = webViewChromeClient  webView.loadUrl("file:///android_asset/snippet.html")  webView  }  

а затем представьте веб — представление в виде фрагмента нижнего листа следующим образом:

 override fun onViewCreated(view: View, savedInstanceState: Bundle?) {  super.onViewCreated(view, savedInstanceState)  if (webController == null) {  // activity restarted without original context  dismiss()  } else {  webController?.webView?.visibility = View.VISIBLE  webController?.let {  fragment_web_view?.addView(webController?.webView)  }  }  }  

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

  1. Если я сохраняю веб-представление с помощью одного элемента, веб-представление прекращает выполнение сетевого запроса после представления веб-представления, а затем отклоняется
  2. Если я никогда не представлю фрагмент, веб-представление будет работать нормально, независимо от того, как долго я буду ждать

Запросы начинаются нормально, но через некоторое время остаются в ожидании

Но в этих двух сценариях веб-представление работает нормально.

  1. Если я сохраню веб-представление на экране, все запросы будут работать нормально.
  2. Если я продолжу представлять и отклонять веб-представление, все запросы будут работать нормально.

Есть ли что-то, чего я не понимаю в веб-представлении Android, что могло вызвать эту проблему? Чтобы обновить веб-представление, мне нужно повторно инициализировать его, чтобы запросы снова работали.