I had faced a similar situation. What I ended up doing was the following.
private Dialog progressDialog;
define two methods to keep track of the progress bar showing or dismissing. Something like this.
public void showProgressBar(String msg){
progressDialog = ProgressDialog.show(this, "", message, true);
}
public void dismissProgressBar(){
if(progressDialog != null && progressDialog.isShowing())
progressDialog.dismiss();
}
call showProgressBar(message)
before login method.
showProgressBar(message);
then,
ParseUser.logInBackground
. Then, Inside done
method, call dismissProgressBar();