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

Неправильная периодичность вызова метода по таймеру - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Чтение строк из file.txt http://www.cyberforum.ru/android-dev/thread1081259.html
Здравствуйте. Помогите, пожалуйста, с чтением данных из текстового файла. Система такая: у меня есть некий file.txt, в нем данные в каждой строке. А мне его нужно открыть и эти данные считать в...
Программирование Android Не подключается устройство к adb Внезапно перестало подключаться устройство к adb-серверу. Пишет что устройство offline. Что пробовал: 1. Переустановка драйверов на телефон. 2. Рестарт сервера adb. 3. Перезагрузка телефона. 4.... http://www.cyberforum.ru/android-dev/thread1081190.html
Синхронизация данных приложения между устройствами Программирование Android
Здравствуйте! Необходимо осуществить синхронизацию данных приложения на разных устройствах пользователя, т.е. есть бд, нужно, чтобы когда пользователь изменил свою базу данных на одном устройстве и...
Программирование Android Обновление данных Activity при нажатии на кнопку
Приветствую всех. Проблема такая: необходимо обновлять данные(ImageView, TextView и т.п.) в Activity при нажатии на кнопку. Создаю игру-викторину наподобие "Кто хочет стать миллионером", пользователь...
Программирование Android ScrollView не скроллит http://www.cyberforum.ru/android-dev/thread1081103.html
Активити не помещалось на экране. Добавил scrollview, при компиляции сколько бы я не водил пальцем по экрану, он не скроллится. Причем ползунок появляется. <RelativeLayout...
Программирование Android Как настроить ProGuard в IDEA? Сабж. Искал, читал, но до конца так и не понял.. подробнее

Показать сообщение отдельно
Max_92
25 / 7 / 2
Регистрация: 26.04.2010
Сообщений: 205

Неправильная периодичность вызова метода по таймеру - Программирование Android

25.01.2014, 17:06. Просмотров 717. Ответов 1
Метки (Все метки)

Есть необходимость запускать некую задачу в фоне по таймеру. Для этого я использовал следующий код

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 //обновление по таймеру
       Timer myTimer = new Timer(); // Создаем таймер
       final Handler uiHandler = new Handler();
       //final TextView txtResult = (TextView)findViewById(R.id.txtResult);
       myTimer.schedule(new TimerTask() { // Определяем задачу
           @Override
           public void run() {
               i++;
               //Toast.makeText(mContext, Integer.toString(i), Toast.LENGTH_SHORT).show();
               uiHandler.post(new Runnable() {
                   @Override
                   public void run() {
                       //txtResult.setText(result);
                       UpdateNews(enableNotifications, i);
                   }
               });
           };
       }, 0L, INTERVAL); // интервал, 0 миллисекунд до первого запуска.
Собсно, проблема в том, что UpdateNews() запускается гораздо чаще чем надо, вне зависимости от значения переменной INTERVAL (например, 5000 мс), которое я меняю на PreferenceActivity. Это видно по всплывающим сообщениям. Но её изменение, как мне кажется, влияет на задержку запуска. Так как правильно юзать этот таймер?

Добавлено через 1 минуту
если поменять аргументы INTERVAL и 0L местами, приложение крэшится сразу же при старте MainActivity

Добавлено через 3 минуты
Проблема скорее всего в том, что TimerTask стартует с заданным значением один раз и дальнейшие изменения переменной INTERVAL не влияют на периодичность. Как сделать, чтобы эти изменения применялись "на лету"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru