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

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

Войти
Регистрация
Восстановить пароль
 
Radzhab
12 / 12 / 0
Регистрация: 18.06.2011
Сообщений: 407
#1

ExecutorService "замораживает" UI - Программирование Android

01.10.2013, 00:34. Просмотров 599. Ответов 9
Метки нет (Все метки)

В методе парсю несколько страниц сайта. UI подвисает. Как исправить ситуацию
Java
1
2
3
ExecutorService executor = Executors.newCachedThreadPool();
 
Future<List> future = executor.submit(new Callable<List>() {
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2013, 00:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ExecutorService "замораживает" UI (Программирование Android):

Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры" - Программирование Android
Ребят, всем привет! накидайте какие-нить идеи по реализации ситуация такая есть таблицы - &quot;списки_жанров&quot;, &quot;фильмы&quot;, &quot;режиссеры&quot; мне...

Ошибка "Unknown method "e" of "org.apache.commons.logging.Log" - Программирование Android
Unknown method 'e' of 'org.apache.commons.logging.Log' package com.mycompany.myapp; import android.widget.*; import...

Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов - Программирование Android
Я учусь в универе и вот пытаюсь делать лабораторные по языку java, только на свой телефон с помощью android studio )) До этого все...

Выбор платформы разработки "1С Мобильная платформа" или "Android Studio" - Программирование Android
Всем, здравствуйте! Есть задача по разработке клиента для терминала сбора данных. Для использования его c WMS. После долгих раздумий было...

При эмулировании вместо надписи "Hello world" отображается "android" - Программирование Android
Привет форумчане! Я только-только начинал программировать на андроиде. Поставил среду, все настроил как на google.developers . Когда...

Как "превратить" string "6.971245e-001" во float? - Программирование Android
Число конечно пример

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
01.10.2013, 00:38 #2
Использовать Runnable вместо Callable не пробовали ?
Radzhab
12 / 12 / 0
Регистрация: 18.06.2011
Сообщений: 407
01.10.2013, 00:51  [ТС] #3
МНе нужно получать данные. Поэтом я его юзаю

Java
1
2
3
4
5
6
7
8
9
10
ExecutorService executor = Executors.newCachedThreadPool();
 
                        Future<List> future = executor.submit(new Callable<List>() {
                            @Override
                            public List call() throws Exception {
                                
                                buf = GetHtml(url);
                                return buf;
                            }
                        });
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
01.10.2013, 00:55 #4
А через Runnable, значит, данные получить невозможно ?
Может UI фризиться не на получении данных, а уже после.
AsyncTask попробуйте, если Runnable не хотите.
Radzhab
12 / 12 / 0
Регистрация: 18.06.2011
Сообщений: 407
01.10.2013, 01:14  [ТС] #5
Я просто хочу юзать Executorservice
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
01.10.2013, 13:11 #6
Для AsyncTask тоже можно юзать экзекуторы)

Добавлено через 4 минуты
Netscape, А как получить результат Runnable не используя самописных методов и глобальных переменных?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.10.2013, 14:28 #7
вы, наверное, потом вызываете future.get() в UI потоке и UI поток ждет ответа.

Добавлено через 55 секунд
используйте обычный AsyncTask.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
01.10.2013, 15:34 #8
А как получить результат Runnable не используя самописных методов и глобальных переменных?
Использовать интерфейсы, например.
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
01.10.2013, 16:32 #9
Netscape, зачем использовать 2 интерфейса когда можно использовать 1? В чем профит?
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
01.10.2013, 17:01 #10
Цитата Сообщение от KillAndEat Посмотреть сообщение
Netscape, зачем использовать 2 интерфейса когда можно использовать 1? В чем профит?
ООП, такой ООП.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2013, 17:01
Привет! Вот еще темы с ответами:

Как прикрутить "свой браузер" к странице - "фрагмент" - Программирование Android
здравствуйте. все, уже голову сломал. не соображаю совсем. не получается прикрутить код браузера к странице fragments.выводиться должно на-...

Что означают конструкции "finally" и "throw new"? - Программирование Android
Я с Java уже давно, но с этим столкнулся в первый раз. Объясните, пожалуйста, что означают вот это &quot;finally&quot; и &quot;throw new&quot;. Вот пример...

блокирование кнопок "Home" "Back" - Программирование Android
Доброго времени. собственно вопрос сл. можно ли заблокировать или каким либо образом отключить возможность нажатия пользования кнопок...

Ошибка "Gradle"MyApplication" projectrefresh failed - Программирование Android
Всем доброго вечера. Только начинаю писать под андроид, и на одном из первых этапов возникла такая ошибка. Создал проект (эмулятор не...


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

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

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