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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 423
#1

Потоки. Thread и runOnUiThread - Программирование Android

08.07.2014, 14:03. Просмотров 1592. Ответов 2
Метки нет (Все метки)

Пытаюсь в отдельном потоке выполнять действия и во время этого показывать ProgressBar.

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
29
30
31
32
33
34
35
36
37
public void runProcess() {
 
//запускаем поток
Thread th = new Thread(new DoIncrement());
th.start();
}
 
 
/*
* Класс, который будет выполняться в выделенном потоке
*/
class DoIncrement implements Runnable {
   public void run() {
 
   Cursor cursor = getCursor(); //получаем результат запроса
 
   while (cursor.moveToNext()) {
   
      //что-то делаем
      //...
      //...
   
      //обновляем ProgressBar
      runOnUiThread(new UpdateUI());
      }
   }
}
 
 
/*
* Обновляем ProgressBar
*/
class UpdateUI implements Runnable {
   public void run() {
   dialog.setMessage("progress: " + progress + " %");
   }
}
В результате dialog.setMessage() начинает срабатывать уже после завершения потока.
Почему так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2014, 14:03     Потоки. Thread и runOnUiThread
Посмотрите здесь:

Потоки, asyncTask или thread? - Программирование Android
Мне нужно отправить запрос на сервер и загрузить с него инфу в мой ListFragment(данные на сервере хранятся в формате json). При этом запрос...

Запустить runOnUiThread из класса - Программирование Android
Пишу программку, которая записывает звук, анализирует и выдаёт результат на экран. Когда весь код в Activity всё работает. Решил...

Передать данные в работающий thread из другого thread - Программирование Android
Есть 2 потока запущенные разными классами и из потока А нужно сообщить потоку Б что бы он запустил свою определенную функцию. Ссылки на...

Остановить Thread - Программирование Android
Гуру, помогите кодом! Есть активити, которое заполняется из потока Поток "линейный": -долго думаем - выводим в поле 1 -долго...

Thread.sleep() - Программирование Android
Вообщем, проблемма вот в чем. Я пытаюсь заставить "заснуть" программу, в результате - она засыпает, но сразу выводит все данные. ...

использование thread - Программирование Android
при нажатии должен срабатывать episodes и появляться новый layout поверх имеющегося. @Override protected void onCreate(Bundle...

Обмен информацией с Thread - Программирование Android
Всем привет! Приложение запускает Thread для выполнения некоторой работы. Работа зависит от параметров, которые могут изменяться...

Android UiThread (UI thread) - Программирование Android
кто-нибудь может объяснить , что это такое и как используется на примере?

The application may be doing too much work on its main thread - Программирование Android
Ну елки палки, это что еще такое ? :) В приложении запускаю камеру и ловлю результат PhotoObject current_photoObj ; // мой класс для...

Как передать данные в thread? - Программирование Android
Доброго всем дня) Прошу совета. Есть активити. Она запускает сервис,в котором стартует поток, опрашивающий удаленный сервер по заранее...

Узнать когда завершился Thread - Программирование Android
Допустим я запустил поток из другого потока и в этом другом потоке хочу узнать когда завершится(выполнит свою задачу) тот поток что я...

Thread после выполнения закрывается? - Программирование Android
Добрый день!) подскажите такую штуку. есть поток Thread ProcessThread = new Thread(new Runnable() { @Override ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,706
Завершенные тесты: 1
08.07.2014, 14:12     Потоки. Thread и runOnUiThread #2
AsyncTask что мешает использовать?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 423
08.07.2014, 14:26  [ТС]     Потоки. Thread и runOnUiThread #3
Паблито, я бы с радостью, но в этом отдельном потоке я динамически создаю элементы View.
Т.е. ради этого и затеял этот поток, т.к элементов очень много.

P.S. Но т.к. я и в этом потоке не могу обращаться к элементам, созданным в основном потоке, то создание элементов происходит не прямо там, а через Handle:
Java
1
2
3
Message msg = new Message();
msg.obj = ListValues;
h.sendMessage(msg);
Ответ Создать тему
Опции темы

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