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

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

Войти
Регистрация
Восстановить пароль
 
Max_92
25 / 7 / 2
Регистрация: 26.04.2010
Сообщений: 205
#1

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

25.01.2014, 17:06. Просмотров 728. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 17:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неправильная периодичность вызова метода по таймеру (Программирование Android):

Артефакт при осуществлении первой попытки обратного вызова для метода onAccessibilityStateChanged - Программирование Android
Я использую в своем приложении функциональность, связанную с дополнительными возможностями, представляемыми через использование служб...

Метод фрагмента onResume() перестает вызываться после вызова метода recreate() для Activity - Программирование Android
Такая проблема:после вызова метода recreate() методы фрагментов onCreate() and onCreateView() вызываются, а он Resume() - нет! Но если...

Создать процедуру stop() для предотвращения вызова макроса по таймеру - VBA
Dim intAddress As Integer Sub MovingString() Cells(1, intAddress).Value = "" If intAddress > 1 Then intAddress = intAddress - 1 ...

Сбой вызова метода из-за отсутствия в [System.Object[]] метода с именем "op_Division" - PowerShell
При разборе скрипта, найденного на просторах интернета (Создание пользовательского объекта), появилась ошибка clear ...

Неправильная работа метода DrawPoligon - C#
Нужно нарисовать 6-ти угольную звездочку. Её я рисую по 2 6-ти угольникам. Но у меня возникли проблемы при вырисовывание самой звезды....

Вызов метода по таймеру (каждые 5 секунд) - C#
Здравствуйте. У меня есть консольное приложение. Каждые 5 секунд должен вызываться метод Live класса Hive. При такой реализации таймера,...

1
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
25.01.2014, 17:12 #2
Max_92,
Цитата Сообщение от Max_92 Посмотреть сообщение
Проблема скорее всего в том, что TimerTask стартует с заданным значением один раз и дальнейшие изменения переменной INTERVAL не влияют на периодичность. Как сделать, чтобы эти изменения применялись "на лету"
Убивать TimerTask и пересоздавать её.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2014, 17:12
Привет! Вот еще темы с ответами:

.NET 4.x Запуск метода по таймеру в отдельном потоке - C#
Доброго времени суток! Господа знатоки помогите начинающему. Есть метод получения почты public void GetLastMails() { ...

Действия до и после вызова метода - C# WCF
Подскажите, пожалуйста, по реализации. Дан класс 'ServiceBase', содержащий ссылки на некоторые внутренние ресурсы сервиса (в коде...

Разобрать синтаксис вызова метода - C#
Здравствуйте, подскажите что означает данный синтаксис вызова метода: Process.Start(new ProcessStartInfo(Application.ExecutablePath,...

Проблема вызова метода COM объекта из VB - C++
Помогите решить проблему. Я написал на С++ COM объект и при попытке вызвать его метод из VB, возникает ошибка. Выдается сообщение о том что...


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

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

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