Progress Dialog "Não Para"

Olá boa tarde pessoal,

Estou com um problema em um projeto Android. Criei um aplicativo WebView de uma site responsivo e coloquei Progress Dialog nos links para o usuário não ficar com a tela congelada enquanto não carrega. Conforme código abaixo

    ProgressDialog pd = null;

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        pd = new ProgressDialog(FullscreenActivity.this);
        pd.setTitle("Load");
        pd.setMessage("Aguarde...");
        pd.show();
        super.onPageStarted(view, url, favicon);
    }

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

        pd.dismiss();
        super.onPageFinished(view, url);
    }

Porem a página é carregada mas o Progress Dialog não para. Como faço para setar um tempo nele?
Tentei usar o setMax(100) e não adiantou nada.

Já que ninguém respondeu eu consegui resolver através de um site gringo, após fuçar muito, muito, muito mesmo. Segue o resultado.

A melhor forma de trabalhar mesmo com esta “porcaria” de ProgressDialog é usar mesmo um AsyncTask.

31
32

public class BackgroundTask extends AsyncTask <Void, Void, Void> {
private ProgressDialog dialog;

public BackgroundTask(MyMainActivity activity) {
    dialog = new ProgressDialog(activity);
}

@Override
protected void onPreExecute() {
    dialog.setMessage("Doing something, please wait.");
    dialog.show();
}
 
@Override
protected void onPostExecute(Void result) {
    if (dialog.isShowing()) {
        dialog.dismiss();
    }
}
 
@Override
protected Void doInBackground(Void... params) {
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    return null;
}

}
You should replace MyMainActivity in the ProgressDialog constructor with the name of the calling activity. Note also that this example doesn’t actually do anything - it just sleeps for 5 seconds and then finishes. To start the task, you can use the following:

1
2
BackgroundTask task = new BackgroundTask(MyMainActivity.this);
task.execute();

1 curtida

Bom Trabalho @Ruivao por mesmo assim postar isso ajuda muito nossa comunidade!
Caso ninguem responda pode me comentar no seu post que farei o possivel para ajudar @Ferreiranobre