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

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

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

Timer в ListView - Android

10.08.2013, 00:52. Просмотров 629. Ответов 4
Метки нет (Все метки)

Добрый вечер! Поставлена задача: нужно создать ListView в элементах которого тикало время от даты создания объекта. Я пошел по самому короткому и казалось бы единственному пути. Сделать ListView, запустил таймер который будет каждую секунду обновлять значения для адаптера ( adapter.notifyDataSetChanged(); ) Естественно, ListView стал дрожать при прокрутке. Решено было при начале прокрутки убивать таймер, а при остановке прокрутки создавать заново

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            switch (scrollState) {
            case SCROLL_STATE_TOUCH_SCROLL:
                timer.cancel();
                break;
 
            case SCROLL_STATE_IDLE:
                timer = new Timer();
                                timer.schedule(new TimeUpdater(), 1000, 1000);
            
            }
            
        }
На VirtualBox работало нормально, а вот на устройстве лютые тормоза(не успевает срабатывать код создания нового таймера при прокрутке).
Можно ли как то заставить таймер преостановиться а потом запуститься, не на несколько секунд а по команде.
P.S. Я знаю что обновления таймера кажую секунду это дебильная идея, но таков каприз в ТЗ.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2013, 00:52     Timer в ListView
Посмотрите здесь:

Android Timer и TimerTask
Android timer или postdelayed
Android Использование Timer в андроид приложениях
Handler timer Android
Android Timer для чайника
Android Timer и AppWidgetProvider
Обращение к UI из Timer Android
Timer Android
ListView не работает Android
Что будет если не завершена задача в Timer Android
Timer \ Intent Android
Android CheckBox и Timer

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.08.2013, 01:24     Timer в ListView #2
создать кастомною View для отображения таймера которая будет обновлять сама себя вместо обновления списка не пробовали?
dell29
1 / 1 / 0
Регистрация: 06.08.2012
Сообщений: 32
10.08.2013, 01:38  [ТС]     Timer в ListView #3
Пробовал, таймер во всех вюхах, обновлял только видимые, все равно тормозит(((
Может кривые руки и что то не так писал?
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,502
10.08.2013, 12:55     Timer в ListView #4
Не уверен, но...
Может попробуете сделать (желательно потоко-незавимую) переменную, глядя на которую таймеры будут обновлять список. А приостанавливать/запускать таймеры просто переключая эту переменную в 1/0 или true/false. Это надежнее. В таймерах при этом реально ничего не пересоздается... Классы не тронуты, мусорщик не задействован...
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.08.2013, 14:02     Timer в ListView #5
можно использовать View.postDelayed вместо таймера.
Yandex
Объявления
10.08.2013, 14:02     Timer в ListView
Ответ Создать тему
Опции темы

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