Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 5.00
Vlast92
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 20
#1

Progressdialog при выполнении asynctask - Программирование Android

08.04.2013, 19:22. Просмотров 2232. Ответов 9
Метки нет (Все метки)

Здравствуйте!
Есть asynctask который отправляет запрос и после парсит страницу. Хотел добавить Progressdialog который начинал бы работать перед запуском asynctask'a.

showProgressDialog
Java
1
2
3
4
5
6
    public void showProgressDialog(ProgressDialog pd){
        pd = new ProgressDialog(this);
        pd.setCancelable(false);
        pd.setMessage("Обновление");
        pd.show();
    }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
             public void onItemClick(AdapterView<?> parent, View arg1, int pos, long id) {
                    ProgressDialog pd = null;   
                    showProgressDialog(pd);
 
                     FindTempYourLand newFindForecastTemp = new FindTempYourLand();
                     FindTempHourly newFindHourlyTemp = new FindTempHourly();
                     try {                  
                         hourel=newFindHourlyTemp.execute().get(15000,TimeUnit.MILLISECONDS);
                        forel=newFindForecastTemp.execute().get(15000,TimeUnit.MILLISECONDS);           
                    } catch (TimeoutException e) {
                        e.printStackTrace();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    } catch (ExecutionException e) {
                        e.printStackTrace();
                    }
                    pd.dismiss(); 
                  }
Но Progressdialog появляется на секунду после выполнения asynctask'a.

Подскажите в чем проблема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2013, 19:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Progressdialog при выполнении asynctask (Программирование Android):

Как показать ProgressDialog при долгом построении UI? - Программирование Android
Есть две активити. При нажатии кнопки в первой активити, происходит переход ко второй. Во второй активити в onCreate строится интерфейс. ...

Ошибка при запуске AsyncTask при нажатии на пункт ActionBar - Программирование Android
Здравствуйте, почему при нажатии на пункт Action Bar'а вылетает ошибка? @Override public boolean onCreateOptionsMenu(Menu menu)...

Запуск AsyncTask при повороте девайса - Программирование Android
Здравствуйте, мне нужно запустить AsyncTask при повороте девайса... код есть но он не работает...( помогите пожалуйста...) ..... ...

Вылет при выролнении объемной задачи в AsyncTask - Программирование Android
Добрый день, Столкнулся с одной проблемой и не пойму с какой стороны искать решение. Приложение при первоначальном запуске...

Как реализовать Синхронное выполнение двух функций при вызове AsyncTask - Программирование Android
как сделать так чтобы при нажатии на BUTTON с начало выполнилась функция getSignIns а после удачного выполнения выполнялась ...

ProgressDialog - Программирование Android
public class Main_Activity extends Activity { private ProgressDialog pd; private class LogIn extends AsyncTask&lt;Void,...

9
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
08.04.2013, 19:47 #2
Vlast92, тебе нужен метод onPreExecute()

onPreExecute(), invoked on the UI thread before the task is executed. This step is normally used to setup the task, for instance by showing a progress bar in the user interface.

http://developer.android.com/referen...AsyncTask.html
0
Vlast92
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 20
08.04.2013, 20:08  [ТС] #3
Попробовал...

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
        ProgressDialog dialog;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            dialog = ProgressDialog.show(MainActivity.this, "","Обновление", true);
            dialog.show();
        }
        
        @Override
        protected void onPostExecute(ForecastElement[] result) {
            super.onPostExecute(result);
            dialog.dismiss();
        }
..., моргнуло после завершения обоих asynctask,ов.
0
Vlast92
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 20
09.04.2013, 20:41  [ТС] #4
Не помогло отображение progressdialog'а в отдельном потоке. Все также моргает.
Может дело в context'е - ProgressDialog(this)?
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.04.2013, 20:44 #5
может просто таски завершились мгновенно?
0
Vlast92
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 20
09.04.2013, 20:55  [ТС] #6
Обычно на 6 секунд замирает, и после этого progressdialog моргает.
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.04.2013, 21:00 #7
почему у вас дважды вызывается show?
выложите проект.

Добавлено через 39 секунд
а лучше попробуйте сделать просто семпл.
0
Vlast92
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 20
09.04.2013, 21:59  [ТС] #8
Оставил самое основное.
0
Вложения
Тип файла: zip sample_project.zip (950.9 Кб, 45 просмотров)
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.04.2013, 22:11 #9
.get(15000,TimeUnit.MILLISECONDS);
вот от этого зависает UI поток.
1
Vlast92
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 20
09.04.2013, 22:45  [ТС] #10
И вправду! Большое спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2013, 22:45
Привет! Вот еще темы с ответами:

Не показывается ProgressDialog - Программирование Android
Пробую показать диалог пока идёт такое if (item.getItemId() == android.R.id.home || item.getItemId() == 4) { dialog =...

Запрос http + ProgressDialog - Программирование Android
подскажите пожалуйста как реализовать запрос к php серверу по протоколу http/https?, плюс, чтоб на время запроса и обработки ответа...

Async_Tasc появление ProgressDialog - Программирование Android
При запуске Async Tasc в onPreExecute() создаётся и должен появится ProgressDialog. но он не появляется сразу. Вызываю AsyncTasc ...

ProgressDialog upload fpt server - Программирование Android
Ребята помогите разобраться private class uploadFileTask extends AsyncTask&lt;Void, Integer, Long&gt; { private...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
09.04.2013, 22:45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru