Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
basilur
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 6
1

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

21.09.2015, 10:44. Просмотров 295. Ответов 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");, но это уже нагораживание.

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

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

ViewPager, FragmentPagerAdapter непонятное поведение
Добрый день, подскажите пожалуйста, есть ViewPager с 4 табами, все нормально...

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

Doze Mode и непонятное поведение приложения
Здравствуйте. Суть вопроса такая. Имеется секундомер, для него написан сервис,...

Непонятное поведение при повороте экрана
public void onCreate(Bundle savedInstanceState) {...

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

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

После возобновления главного потока, надпись на кнопке меняется, а текст в textview все равно нет.
0
basilur
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 6
22.09.2015, 16:45  [ТС] 4
Есть еще какие-нибудь варианты?
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
22.09.2015, 16:49 5
basilur, ну идея все та же и она скорее всего и есть правильная. Покажите код таймера и его остановки.
0
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,579
Завершенные тесты: 1
22.09.2015, 18:43 6
10мс это 100 кадров в секунду, не жирно?
0
22.09.2015, 18:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2015, 18:43

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

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

Неадекватное поведение адаптера ListView
Собственно есть кастом-адаптер. В него приходят два массива с данными. В dates...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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