ProgressBar между действиями - PullRequest
4 голосов
/ 11 июня 2011

У меня есть два занятия. Первый выполняет второй.

Intent i = new Intent(MyOne.this, MyTwo.class);
                     startActivity(i);

Проблема: Мое второе занятие выполняет тяжелую работу по запуску, поэтому он запускает пару секунд, и перед его запуском я вижу черный экран.

Можно ли вместо этого черного экрана установить индикатор выполнения или какое-либо изображение? Потому что я не думаю, что пользователь будет ждать чего-то, чего он не знает. Я попытался установить индикатор выполнения после setcontentview во втором упражнении, но индикатор выполнения отображается только при полном запуске задания.

Ответы [ 2 ]

4 голосов
/ 11 июня 2011

Я предлагаю вам сделать это асинхронно, используя AsyncTask .

Краткий пример:

ProgressDialog dialog;
class YourTask extends AsyncTask<Void, Void, Void> {
        protected void onPreExecute() {
                   dialog = ProgressDialog.show(...);
        }

        protected Void doInBackground(Void... unused) {
            try {
               // doSomethingHeavy();
                   // publishProgress(...);
            } catch(Exception e) {
                //...
            } 

            return null;
        }

        protected void onProgressUpdate(Void... unused) {
        }

        protected void onPostExecute(Void unused) {
            dialog.dismiss();

        }
    }
1 голос
/ 11 июня 2011

Ты уверен, что можешь. Проверьте AsyncTask и этот учебник для вдохновения.

...