В моем классе, Main расширяет активность, у меня есть это:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case ...
case CREDENTIAL_VIEW:
new SetStatusProgressBar(this).execute();
И есть этот вложенный класс:
private class SetStatusProgressBar extends AsyncTask<String, Void, Boolean> {
private ProgressDialog dialog;
private Main ctx;
public SetStatusProgressBar(Main ctx) {
this.ctx = ctx;
dialog = new ProgressDialog(ctx);
}
// progress dialog to show user that contacting server.
protected void onPreExecute() {
this.dialog = ProgressDialog.show(ctx, null,
"Refreshing data from server...", true, false);
}
@Override
protected void onPostExecute(final Boolean success) {
//...
//statements that refresh UI
//...
if (dialog.isShowing()) {
dialog.dismiss();
timerProgressBarStop();
}
}
protected Boolean doInBackground(final String... args) {
//...
//statements to download data from server
//...
return true;
}
}
В Главном классе я открываю второе Занятие, таким образом:
Intent myIntent = new Intent(Main.this, Credentials.class);
startActivityForResult(myIntent, CREDENTIAL_VIEW);
Эта вторая активность возвращается к основной деятельности следующим образом:
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
Я не понимаю, почему при переходе от второго занятия к основному, ProgressDialog будет показывать ТОЛЬКО ПОСЛЕ того, как обновляется пользовательский интерфейс ... Таким образом, диалог прогресса остается на экране только в течение половины секунды ... а потом прячется! :( Я бы хотел видеть ProgressDialog наверху в течение всего времени загрузки!
Помогите, пожалуйста.
Спасибо всем