LINUX.ORG.RU

Получение данных в UI-поток с бесконечного цикла

 ,


0

1

Добрейшего времени суток. Можете подсказать, пожалуйста, с появившейся проблемой?

Суть проблемы: Отображение данных в UI-потоке (Поток отвечающий за отображение графического интерфейса) с UDP-потока (АsyncTask). При получение UDP пакета не идет отображение данных в UI-поток в реальном времени. Отображение происходит только при обработке событий пользователем. Необходимо: Получение данных в UI-поток с бесконечного цикла асинхронного потока(получение-отправка UDP) в реальном времени.



Последнее исправление: Reizo (всего исправлений: 1)

дергай метод типа notifyDatasetChanged у данных, используемых вьюхой для отображения. вьюха не будет перерисовываться до тех пор, пока ты ей не скажешь, что данные протухли

der_looser ★★
()

Если используется AsyncTask, то можно попробовать костыльнуть и данные выкидывать в onProgressUpdate (он в UI работает), а в нем вызывать некий объект некоего ReceiveDataListener с твоими данными. И конечно же определить его в UI потоке через лямбду или анонимный класс, как удобно.

Костыльно? Наверное.

Release
()
Ответ на: комментарий от pon4ik

Я как вижу советчика электрона, так и представляю его злорадного, пишущего это сообщение перед монитором, вот таким как на видео.

Патч на перле из той же серии

deep-purple ★★★★★
()
Последнее исправление: deep-purple (всего исправлений: 1)

Могу рассказать как это сделать нативно.

В какой вьюхе ты отображаешь свои данные и с какой частотой тебе нужно обновлять?

Если с максимальной скоростью обновлять (60фпс) то поставь во вьюхе в функцию ondraw() после прорисовки всех твоих данных команду invalidate().

Если нужно реже (что скорее всего правильно) создай таймер, который будет вызывать из себя твою вьюху с функцией postinvalidate().

Если не понятно, опиши подробнее, я дам код.

HIS
()

ещё есть вариант рефрешить при получении нужной порции данных (ну там каждую строчку или 10). Если данных не много, то можно не по таймеру и экономить батарейку.

HIS
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.