Use AsyncTask instead. It has a function called onPostExecute where in you can dismiss the Progress Dialog.
@Override
protected void onPostExecute(Void result) {
Toast.makeText(ctx, "Completed Synch with Server", Toast.LENGTH_SHORT)
.show();
mProgressDialog.dismiss();
}
Handlers are used to run a small section of code at a predetermined time. Typically one uses AlarmManager to launch intents (activities, services, broadcasts), but if you are interested in running only a small section of code you can use handlers:
if(condition == true){
Handler timer = new Handler();
timer.postDelayed(task, (5 * 60 * 1000);
}
---
private Runnable task = new Runnable() {
public void run() {
mProgressDialog.dismiss();
}
};
I'd strongly recommend using a AsyncTask for anything thread related on Android.