ProgressDialog не исчезает, когда я выбираю «Оставаться на этой странице» при перенаправлении - PullRequest
0 голосов
/ 06 апреля 2020

Я создаю приложение, в котором нажатие кнопки должно go открыть новую страницу. Я пытаюсь поставить ProgressDialog во время этого перехода. Но текущая страница (если она грязная) предлагает пользователю выбрать «Оставить / остаться на этой странице».

Когда пользователь выбирает «Оставаться на этой странице», ProgressDialog все равно остается.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val webView: WebView = findViewById(R.id.formView)
        webView.webViewClient = MyWebViewClient()
        val webSettings = webView.settings
        webSettings.javaScriptEnabled = true
        webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY)
        webView.getSettings().setBuiltInZoomControls(true)
        webView.getSettings().setUseWideViewPort(true)
        webView.getSettings().setLoadWithOverviewMode(true)
        webView.setWebViewClient(WebViewClient())
        webView.setWebChromeClient(WebChromeClient())

        loadPage(webView, submitFormURL)
    }

    fun loadPage(webView: WebView, url: String) {
        var progressDialog = ProgressDialog(this)
        progressDialog!!.setMessage("Loading...")
        progressDialog!!.show()

        webView.setWebViewClient(object : WebViewClient() {
            override fun onPageFinished(view: WebView, url: String) {
                if (progressDialog!!.isShowing()) {
                    progressDialog!!.dismiss()
                }
            }

            override fun onReceivedError(
                view: WebView,
                errorCode: Int,
                description: String,
                failingUrl: String
            ) {
                Toast.makeText(this@MainActivity, "Error:$description", Toast.LENGTH_SHORT).show()
            }
        })

        webView.loadUrl(url)
    }
}

private class MyWebViewClient : WebViewClient() {
    override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
        return false
    }
}
...