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

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

08.04.2013, 19:22. Просмотров 2376. Ответов 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.

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

Ошибка при запуске AsyncTask при нажатии на пункт ActionBar
Здравствуйте, почему при нажатии на пункт Action Bar'а вылетает ошибка? ...

Запуск AsyncTask при повороте девайса
Здравствуйте, мне нужно запустить AsyncTask при повороте девайса... код есть...

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

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

ProgressDialog
public class Main_Activity extends Activity { private ProgressDialog pd; ...

9
c4sp3r
0x5B4C322291BD52AE
93 / 93 / 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/reference/android/os/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
1160 / 984 / 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
1160 / 984 / 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
1160 / 984 / 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
09.04.2013, 22:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2013, 22:45
Привет! Вот еще темы с решениями:

Не показывается ProgressDialog
Пробую показать диалог пока идёт такое if (item.getItemId() ==...

Async_Tasc появление ProgressDialog
При запуске Async Tasc в onPreExecute() создаётся и должен появится...

Запрос http + ProgressDialog
подскажите пожалуйста как реализовать запрос к php серверу по протоколу...

ProgressDialog upload fpt server
Ребята помогите разобраться private class uploadFileTask extends...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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