В моем классе Main расширяет Activity, у меня есть это:
@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 будет отображаться ТОЛЬКО ПОСЛЕ обновления пользовательского интерфейса... Таким образом, диалоговое окно Progress остается на экране только полсекунды... а затем скрывается ! :( Я хотел бы видеть ProgressDialog наверху в течение всего времени загрузки!
Помоги пожалуйста. Спасибо вам всем
case CREDENTIAL_VIEW:
после вызоваnew SetStatusProgressBar(this).execute();
? - person dave.c   schedule 16.02.2011