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

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

Войти
Регистрация
Восстановить пароль
 
 
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 92
#1

Как забрать данные из отработавшего потока? - Программирование Android

16.10.2014, 14:41. Просмотров 1113. Ответов 22
Метки нет (Все метки)

Код в потоке сгенерил массив интов и завершился.Как забрать данные?
ЗЫ:в жабе есть какой то аналог WaitForSingleObject ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2014, 14:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как забрать данные из отработавшего потока? (Программирование Android):

Как вытащить данные из потока. Cant create handler inside thread that has not called Looper.prepare() - Программирование Android
В общем столкнулся со следующей неприятной проблемой. Есть клиент. Он запрашивает у сервера некоторые данные. Сервер эти данные посылает...

Как правильней забрать данные - PHP
Доброе утро, уважаемые форумчане!) Столкнулся с токой проблемой, что не знаю как ПРАВИЛЬНЕЙ забрать id категории с url страницы. Вот,...

Как правильно забрать данные - PHP
Доброе вечер, уважаемые форумчане!) Столкнулся с токой проблемой, что не знаю как ПРАВИЛЬНО забрать часть строки из строки. Вот, к...

Как забрать из clipboard данные? - JavaScript
Подскажите, плиз, как забрать из буфера обмена (clipboard) данные? Я пользуюсь my_obj.clipboardData.getData('Text'), которая возвращает...

Как забрать данные из ячейки? - Delphi БД
Проблема состоит в том что у меня есть две таблицы и при выборе в первой таблице поле со второй должны забираться данные и выводится...

Как забрать данные из ActionListener - JavaFX
День добрый, интересует как забрать данные из ActionListener? По нажатию кнопки забираю данные из текстовых полей, присваиваю их...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
18.10.2014, 18:30 #16
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
class GenArr extends Thread
{
    private android.os.Handler handler;
    private int arSZ;
    private int min;
    private int max;
    private int []aRR;
    Random r;
    public GenArr(Handler handler, int arSz,int MIN,int MAX)
    {
        this.handler = handler;
        this.arSZ=arSz;
        this.min=MIN;
        this.max=MAX;
        this.aRR=new int[this.arSZ];
    }
    @Override
    public void run()
    {
        this.r = new Random();
        this.r.setSeed(System.currentTimeMillis());
        for(int i=0;i<this.arSZ;i++)
        {
            this.aRR[i]=this.r.nextInt(max - min) + min;
        }
        handler.post(new Runnable() { 
             @Override
             public void run() {
                  textView.setText("Done");
              }
    });
}
писал на коленке, проверьте.
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 92
18.10.2014, 21:10  [ТС] #17
YuraAAA, Я вас не понимаю.При чем здесь это:
Java
1
textView.setText("Done");
???????????

Добавлено через 17 минут
ЗЫ: что вернет Thread::getState() после завершения Thread::run() - WAITING или TERMINATED ?
0
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
19.10.2014, 11:40 #18
yotsi,
Цитата Сообщение от yotsi Посмотреть сообщение
Вывести результат работы потока?
Вот что это. А что Вам надо сделать с ним?

Цитата Сообщение от yotsi Посмотреть сообщение
ЗЫ: что вернет Thread::getState() после завершения Thread::run() - WAITING или TERMINATED ?
Зачем Вам это?
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 92
19.10.2014, 21:32  [ТС] #19
В общем все как всегда... После нескольких дней без результативных попыток найти что то в РУ, все решилось 20 минутами гугления на инглише.
Сделал через Runnable. Может кому из новичков будет полезно.Вот:
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
38
39
40
41
class GenArr implements Runnable
{
    private int arSZ;
    private int min;
    private int max;
    private int []aRR;
    Random r;
    public GenArr(int arSz,int MIN,int MAX,Random R)
    {
        this.arSZ=arSz;
        this.min=MIN;
        this.max=MAX;
        this.aRR=new int[this.arSZ];
        this.r=R;
    }
    @Override
    public void run()
    {
        for(int i=0;i<this.arSZ;i++)
        {
            this.aRR[i]=Color.argb(255,r.nextInt(max - min) + min, r.nextInt(max - min) + min, 
                    r.nextInt(max - min) + min);
        }
    }
    public int[] getThResult()
    {
        return this.aRR;
    }
}
/***********************************************/
        GenArr gar=new GenArr(this.widthScr*this.heighScr,0,255,this.R);
        Thread thr=new Thread(gar);
        thr.start();
        try {
            thr.join();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        this.colArr=gar.getThResult();
/***********************************************/
ЗЫ: учусь дальше параллелить задачи в потоки на жабе.

Добавлено через 4 часа 26 минут
Подскажите как в жабе называеться такая штука - в классе родительского потока объявляться метод, указатель на который передается в дочерний поток, из которого вызовом этого метода данные передаются назад в родительский поток?
0
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
20.10.2014, 15:55 #20
Цитата Сообщение от yotsi Посмотреть сообщение
thr.join();
что повесит вызывающий поток (скорее всего UI).
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 92
20.10.2014, 15:58  [ТС] #21
Цитата Сообщение от YuraAAA Посмотреть сообщение
что повесит вызывающий поток (скорее всего UI).
Повисит и отвиснет, всеравно в нем только битмап и выводиться, больше от него ничего и не требуется.Задача - максимально быстро раскрашивать битмап рандомными значениями.
0
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
20.10.2014, 16:19 #22
yotsi, а если слабый девайс? ANR?
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 92
20.10.2014, 18:38  [ТС] #23
У меня MTK6589, он пока еще не слишком слабый.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2014, 18:38
Привет! Вот еще темы с ответами:

Как забрать данные из необычной формы? - PHP
Вот такая форма: http://i.imgur.com/hr1MeVQ.png Не получается забрать из неё данные. Вот что пробывал поставить: $Login = $_POST'];...

Как забрать данные из веб сервиса в SplitView или в storyboard - Objective-C
Есть следующая задача - необходимо забрать данные из веб сервиса, далее в зависимости от типа сообщения открывать разные view. Если есть...

Как забрать данные на IIS сервер с локальной машины по dial up? - C# ASP.NET
Не соображу, как решить задачу. Допустим, на локальном компьютере есть данные в формате mdb (например, data.mdb). С этого компьютера по...

Как узнать, что есть данные для ввода, которые можно забрать std::cin - C++
Всем здравствуйте! У меня есть параллельный поток, в котором нужно собирать данные с помощью std::cin. Но чтобы произвести эту...


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

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

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