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

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

Войти
Регистрация
Восстановить пароль
 
PYPS
51 / 50 / 7
Регистрация: 12.07.2011
Сообщений: 542
Завершенные тесты: 3
#1

Async_Tasc появление ProgressDialog - Программирование Android

17.10.2014, 11:09. Просмотров 598. Ответов 7
Метки нет (Все метки)

При запуске Async Tasc в onPreExecute() создаётся и должен появится ProgressDialog.
но он не появляется сразу.
Вызываю AsyncTasc вот так:
Java
1
2
3
AsyncT AT = new AsyncT();
AT.execute(....);
result=AT.get(20,TimeUnit.SECONDS);
Не появляется он из за последней строки, не пойму как это исправить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2014, 11:09     Async_Tasc появление ProgressDialog
Посмотрите здесь:

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

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

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

Ожидание подключения к серверу (ProgressDialog) - Программирование Android
Здравствуйте! Мне нужно, чтобы при переходе на MainActivity вылазил ProgressDialog (он проверяет есть ли подключение к серверу), если...

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

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

ProgressDialog во время динамического создания View - Программирование Android
На layot динамически создается большое кол-во элементов. Хочется в это время показывать ProgressDialog. Но как, если в асинхронном...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
17.10.2014, 12:45     Async_Tasc появление ProgressDialog #2
Цитата Сообщение от PYPS Посмотреть сообщение
Не появляется он из за последней строки, не пойму как это исправить.
удалить ее.
PYPS
51 / 50 / 7
Регистрация: 12.07.2011
Сообщений: 542
Завершенные тесты: 3
17.10.2014, 13:48  [ТС]     Async_Tasc появление ProgressDialog #3
а как получить в переменную результат работы async tasca?
Sony17
28 / 28 / 6
Регистрация: 24.05.2013
Сообщений: 157
17.10.2014, 13:52     Async_Tasc появление ProgressDialog #4
Цитата Сообщение от PYPS Посмотреть сообщение
result=AT.get(20,TimeUnit.SECONDS);
Потому что AsyncTask.get() блокирует UI поток, следовательно диалог не может появиться до окончания работы AsyncTask'а.
PYPS
51 / 50 / 7
Регистрация: 12.07.2011
Сообщений: 542
Завершенные тесты: 3
17.10.2014, 13:55  [ТС]     Async_Tasc появление ProgressDialog #5
Прочел документацию вы совершенно верно говорите, но как тогда сделать чттоб при выполнении AsyncTasc крутился прогресс диалог, а по завершению получить из AsyncTasca значения в переменную
Sony17
28 / 28 / 6
Регистрация: 24.05.2013
Сообщений: 157
17.10.2014, 14:27     Async_Tasc появление ProgressDialog #6
Цитата Сообщение от PYPS Посмотреть сообщение
по завершению получить из AsyncTasca значения в переменную
1) Создать ресивер, перед началом работы AsyncTask'а зарегистрировать его. В onPostExecute() отправить сообщение, указав Intent с таким же action, как и у ресивера и добавив в этот Intent значение своей переменной. В методе onReceive() принять этот Intent, достать из него переменную и затем снять регистрацию ресивера.

2) В классе, который запускает AsyncTask, создать поле(напр. String valueMainClass = ""). В классе, реализующем AsyncTask, создать такую же переменную(String valueAsyncTask = null). В конструкторе AsyncTask'а указать ссылку для valueAsyncTask:

Java
1
2
3
public Constructor(String value) {
     this.valueAsyncTask  = value;
}
В onPostExecute() присвоить результат работы AsyncTask полю valueAsyncTask.
Тем временем, в MainClass'е проверять зн-е поля valueMainClass:

Java
1
2
3
4
do {
   // устанавливаем задержку, чтобы цикл как сумашедший не крутился
   // если зн-е поля valueMainClass изменилось, то работаем дальше
} while(valueMainClass.equals(""))
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
17.10.2014, 14:37     Async_Tasc появление ProgressDialog #7
Почему не воспользоваться интерфейсом?

Java
1
2
3
public interface OnCompleteListener<T> {
        void onSuccess(T result);
    }
Передаём его в асинк таску

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class AbsTask extends AsyncTask<Void, Void, String> {
 
        private OnCompleteListener<String> listener;
 
        public AbsTask(OnCompleteListener<String> listener) {
            this.listener = listener;
        }
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            //Dialog here!
        }
 
        @Override
        protected String doInBackground(Void... params) {
            return null;
        }
 
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            //Dialog off
            if (listener != null) {
                listener.onSuccess(s);
            }
        }
    }
Profit!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2014, 17:34     Async_Tasc появление ProgressDialog
Еще ссылки по теме:

Последовательное выполнение Async Tasks и progressdialog - Программирование Android
как используя asyncTask.execute(); asyncTask.get(); вывести progressdialog?

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

EditText и появление клавиатуры - Программирование Android
У меня есть форма, на которой есть EditText и кнопка. При открытии формы на телефоне сразу же активируется клавиатура к EditText. как...

Рандомное появление "предметов" на карте гугл - Программирование Android
Как сделать чтобы на карте гугл рандомно появлялись предметы? Мне нужно только это,я с остальным я сам справлюсь,надеюсь хоть кто-нибудь...

Появление формы - C++ Builder
Столкнулся с такой проблемой... Мне нужно из одной формы вызвать другую, которая всплывет на какое-то время и исчезнет. Сделал всплытие...


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

Или воспользуйтесь поиском по форуму:
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
17.10.2014, 17:34     Async_Tasc появление ProgressDialog #8
при повороте экрана скорей всего возникнут проблемы, вот отличный пост и исходники прилогаются
http://habrahabr.ru/post/114570/
Yandex
Объявления
17.10.2014, 17:34     Async_Tasc появление ProgressDialog
Ответ Создать тему
Опции темы

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