Ну, одно решение использует ProgressDialog, другой ProgressBar, ProgressDialog отправить диалог с этим прогресс круга.
для ProgressDialog вы должны знать:
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("Downloading JSON ...");
progressDialog.setMessage("Download in progress ...");
progressDialog.setProgressStyle(progressDialog.STYLE_HORIZONTAL);//horizontal
progressDialog.setProgressStyle(progressDialog.STYLE_SPINNER); //Circular
progressDialog.setProgress(0);
progressDialog.setMax(20); // the progress has 20 steps
progressDialog.setIndeterminate(true);// infinite loop in the progress
progressDialog.show();
для AsyncTask вы должны знать:
doInBackground() есть исходный код для асинхронного процесса.
onProgressUpdate() есть исходный код для отправки некоторых частей в основной поток, включая пользовательские интерфейсы. поскольку он работает, вы должны использовать publishProgress() внутри doInBackground().
onPostExecute() этот метод будет выполняться после того, как doInBackground закончить весь процесс
onPreExecute() этот метод для инициализации все то, что вам нужно в вашем AsyncTask
Вы можете объявить и создайте экземпляр ProgressDialog в начале своей деятельности, затем установите progressDialog.show() в AsyncTask внутри onPreExecute()
private class JsonWebService extends AsyncTask<URL, Integer, JSONObject> {
protected void onPreExecute(){
progressDialog.show();
}
protected JSONObject doInBackground(URL... urls) {
//here all your code for download your JSON
//
//publishProgress(counter);
return json;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(JSONObject result) {
//use your JSON as you want your download is finished
// close your progressdialog
progressDialog.dismiss();
}
}
Я добавил пример .. –