rams
rams

Reputation: 1580

progress dialog could not stop

I am new to android.I am using progress dialog in my app but it could not stop.In my app i am using webview.In first activity I have connect button.In second activity connect to facebook code is available.In second activity code:

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......");
    }
}

when connect button clicked the second activity will be executed and getting facebook page.But progress dialog could not stop.

Upvotes: 4

Views: 1684

Answers (4)

Md. Ilyas Hasan Mamun
Md. Ilyas Hasan Mamun

Reputation: 1888

    @Override
        public void onPageFinished(WebView view, String url) {

            try{
                    if (prDialog.isShowing()|| prDialog!= null) {
                        prDialog.dismiss();
                        prDialog= null; /*** Add ***/
                    }

                    }catch(Exception exception){
                        exception.printStackTrace();
                    }

            }
        }

You may also visit the following link to get a complete detail...

http://androiddubd.blogspot.com/2014/07/how-to-show-progress-dialog-or-loader.html

Upvotes: 0

NAP-Developer
NAP-Developer

Reputation: 3796

just this code used and try it out,

@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......");
        }

Upvotes: 0

faylon
faylon

Reputation: 7450

You should not create Dialog in onPageStart, when loading a web page, onPageStart() could be called multi times.

In you onPageStart, you create a new Dialog without closing the old one, so the old dialog will always show.

To solve this you have many choices:

  1. As lmran said, create the dialog only once in onCreate(). Show it in onPageStarted and dismiss in onPageFinished.
  2. Before create a new Dialog, dismiss the old one.

Upvotes: 0

Ali Imran
Ali Imran

Reputation: 9217

Try like this

First create dialog in your onCreate()

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

Then show the dialog in onPageStarted() method.

progressDialog .show();

Then dismiss it in your onPageFinished() method

progressDialog.cancel();

Upvotes: 1

Related Questions