进度对话框无法停止。

4

我是Android新手。我在我的应用程序中使用进度对话框,但它无法停止。在我的应用程序中,我正在使用WebView。在第一个活动中,我有连接按钮。第二个活动中可用的连接到Facebook代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.facebook);
    wvFacebook.setWebViewClient(new MyWebViewClient()); 
    wvFacebook.loadUrl(strFacebook);
} 

private class MyWebViewClient extends WebViewClient 
{            
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    {
        view.getSettings().setJavaScriptEnabled(true);
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {

        super.onPageStarted(view, url, favicon);
        prDialog = ProgressDialog.show(getParent(), "In progress", "Loading, please wait...");
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        Log.e("status","calling....");
        super.onPageFinished(view, url);
        prDialog.dismiss();
        Log.e("status","calling next......");
    }
}

当点击连接按钮时,第二个活动将被执行并获取Facebook页面。但进度对话框无法停止。

4个回答

1

试试这样做

首先在你的onCreate()中创建对话框

ProgressDialog progressDialog =new  ProgressDialog(getApplicationContext());
progressDialog.setMessage("Please Wait");

然后在onPageStarted()方法中显示对话框。

progressDialog .show();

然后在您的onPageFinished()方法中将其关闭

progressDialog.cancel();

它没有停止,仍在运行。 - rams

0

在onPageStart中不应该创建对话框,因为加载网页时,onPageStart()可能会被多次调用。

在您的onPageStart中,您创建了一个新的对话框而没有关闭旧的对话框,所以旧的对话框将一直显示。

要解决这个问题,您有很多选择:

  1. 如lmran所说,在onCreate()中只创建一次对话框。在onPageStarted中显示它,并在onPageFinished中关闭它。
  2. 在创建新对话框之前,关闭旧对话框。

0

0

只需使用这段代码并尝试它,

@Override
        public void onPageFinished(WebView view, String url) {
            Log.e("status","calling....");
            super.onPageFinished(view, url);
            if (prDialog != null || prDialog.isShowing())
                prDialog.dismiss();
            Log.e("status","calling next......");
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接