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

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

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

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

21.09.2015, 10:44. Просмотров 199. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятное поведение программы! (Программирование Android):

Непонятное поведение 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 ссылки на...

5
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 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
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
22.09.2015, 16:49 #5
basilur, ну идея все та же и она скорее всего и есть правильная. Покажите код таймера и его остановки.
0
Pablito
2499 / 1983 / 618
Регистрация: 12.05.2014
Сообщений: 6,925
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

Странное поведение RecyclerView во фрагменте - Программирование Android
Здравствуйте, возникла проблема с обновлением RecyclerView, точнее при создание адаптера в фрагменте, он создается после вызова метода...

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

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

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


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

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

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