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

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

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

Непонятное поведение программы! - Программирование Android

21.09.2015, 10:44. Просмотров 187. Ответов 5
Метки нет (Все метки)

есть счетчик, который выводит цифры в TextView (подобие секундомера)

есть кнопка запуска, она же остановки счетчика.

Кнопка остановки счетчика должна также обнулять его значение (т.е вписывать в исходный TextView начальное значение, а именно "0")

Реализация кнопки стоп условно такова:

Java
1
2
3
                       mTimer.cancel(); //останавливаем таймер
            txt.setText("0"); //вписываем начальное значение
            btn.setText("СТАРТ"); //меняем название кнопки обратно на СТАРТ
Так вот в чем проблема - при большой скорости вывода цифр - раз в 10ms (mTimer.schedule(mtt, 10, 10), вторая строка кода не срабатывает! При том, что таймер останавливается и название кнопки также сменяется.

При скорости таймера в 100ms (mTimer.schedule(mtt, 100, 100) все работает нормально.

Не могу понять причин такого поведения.

Пока единственный выход который нашел, запускать тут же новый таймер, который будет исполнять txt.setText("0");, но это уже нагораживание.

Как выйти из положения и сделать чтобы все работало нормально?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2015, 10:44     Непонятное поведение программы!
Посмотрите здесь:

Непонятное поведение ArrayList - Программирование Android
У меня есть код, который циклом достаёт данные из базы данных и помещает их в HashMap, а оттуда уже типа HashMap помещает в ArrayList....

Непонятное поведение многопоточного приложения - Программирование Android
Всем добрый день. Ввожу в курс дела: я пишу игру под android и мне потребовалась в игре небольшая система, которая будет рендерить пул...

Непонятное поведение при повороте экрана - Программирование Android
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listpick); ...

Непонятное отображение spinner - Программирование Android
Здравствуйте! <TableRow android:id="@+id/tableRow3" android:layout_width="match_parent" ...

Не понятное поведение BaseAdapter - Программирование Android
Добрый день! Проблема в следующем: есть ListView, есть адаптер унаследованный от BaseAdapter. В адаптере в методе getView загружаю...

Неадекватное поведение адаптера ListView - Программирование Android
Собственно есть кастом-адаптер. В него приходят два массива с данными. В dates находится даты в формате "29.05.15". В photos ссылки на...

Анимация ViewGroup, некорректное поведение кнопки - Программирование Android
Всем привет. Возникла такая проблема. Есть анимация, по клику - блок отодвигается вправо, показывая то, что под ним. Кнопка, запускающая...

Поведение после смены ориентации экрана - Программирование Android
Доброго времени суток. У меня есть 2 xml layout файла для вертикальной и горизонтальной ориентации дисплея c тем самим набором елементов....

Странное поведение swipe-to-dismiss RecyclerView - Программирование Android
После удаления свайпом элемента списка остаётся небольшой пробе между элементами, сложно объяснить, поэтому вот ссылка на то, что...

Sockets и потоки, разное поведение на устройствах - Программирование Android
Привет всем. Такая проблема - пытаюсь создать сокеты и обменяться словами. Код сервера public class ServerActivity extends...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
21.09.2015, 11:00     Непонятное поведение программы! #2
Цитата Сообщение от basilur Посмотреть сообщение
Не могу понять причин такого поведения.
Скорее всего таймер успевает еще раз обновить значение после остановки. Может флаг какой добавить, чтобы проверять нужно ли таймеру сейчас установить значение, или он уже остановлен.
basilur
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 6
21.09.2015, 11:14  [ТС]     Непонятное поведение программы! #3
Spelcrawler,

добавил приостановку текущего потока после остановки таймера.
действительно, на 3-4мс значение таймера меняется, но...

После возобновления главного потока, надпись на кнопке меняется, а текст в textview все равно нет.
basilur
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 6
22.09.2015, 16:45  [ТС]     Непонятное поведение программы! #4
Есть еще какие-нибудь варианты?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
22.09.2015, 16:49     Непонятное поведение программы! #5
basilur, ну идея все та же и она скорее всего и есть правильная. Покажите код таймера и его остановки.
Pablito
2411 / 1856 / 581
Регистрация: 12.05.2014
Сообщений: 6,591
Завершенные тесты: 1
22.09.2015, 18:43     Непонятное поведение программы! #6
10мс это 100 кадров в секунду, не жирно?
Yandex
Объявления
22.09.2015, 18:43     Непонятное поведение программы!
Ответ Создать тему
Опции темы

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