Определенно используйте AsyncTask для этого.У меня было то же самое с моим приложением, и вот мой код:
private class getAllData extends AsyncTask<Context, Void, Cursor> {
protected void onPreExecute () {
dialog = ProgressDialog.show(Directory.this, "",
"Loading. Please wait...", true);
}
@Override
protected Cursor doInBackground(Context... params) {
DirectoryTransaction.doDepts();
return null;
}
protected void onPostExecute(Cursor c) {
for(int i = 0 ; i < DeptResults.length ; i++){
deptsAdapter.add(DeptResults[i][0]);
}
dialog.dismiss();
}
}
onPreExecute
метод загружает ProgressDialog, который просто показывает «Загрузка. Пожалуйста, подождите ...».doInBackground
делает то, что заставляло мое приложение загружаться (в моем случае это захват и анализ текста с сервера), а затем onPostExecute
заполняет счетчик, а затем закрывает ProgressDialog.Вы будете хотеть что-то другое для индикатора выполнения, но AsyncTask будет очень похожим.Звоните по номеру onCreate
с новым getAllData.execute(this);