используйте класс AsyncTask, который использовался для выполнения процесса в фоновом режиме, и вы также можете отобразить там свой индикатор выполнения
Вот простой фрагмент кода для AsyncTask
class BackgroundProcess extends AsyncTask<Void,Void,Void>{
private ProgressDialog progress;
public doInBackground(Void...arg){
publishProgress();
// do your processing here like sending data or downloading etc.
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
progress = ProgressDialog.show(YourActivity.this, "", "Wait...");
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if(progress!=null)
progress.dismiss();
progress = null;
}
}
, который теперь инициализируетсяи выполнить его в слушателе кнопки onclick следующим образом:
new BackgroundProcess().execute();
теперь progressdialog будет публиковаться и появляться на экране, а когда процесс завершится, из onPostExecute () просто закройте диалоговое окно прогресса