How to display progress dialog before starting an activity in Android?

Neha picture Neha · Mar 5, 2011 · Viewed 33.8k times · Source

How do you display a progress dialog before starting an activity (i.e., while the activity is loading some data) in Android?

Answer

Matthew Willis picture Matthew Willis · Mar 5, 2011

You should load data in an AsyncTask and update your interface when the data finishes loading.

You could even start a new activity in your AsyncTask's onPostExecute() method.

More specifically, you will need a new class that extends AsyncTask:

public class MyTask extends AsyncTask<Void, Void, Void> {
  public MyTask(ProgressDialog progress) {
    this.progress = progress;
  }

  public void onPreExecute() {
    progress.show();
  }

  public void doInBackground(Void... unused) {
    ... do your loading here ...
  }

  public void onPostExecute(Void unused) {
    progress.dismiss();
  }
}

Then in your activity you would do:

ProgressDialog progress = new ProgressDialog(this);
progress.setMessage("Loading...");
new MyTask(progress).execute();