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

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

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

Вызова метода по таймеру - Программирование Android

06.01.2018, 02:00. Просмотров 188. Ответов 2

Есть рабочий метод, реализовывающий изменение TextView по таймеру.
Скопипастил его же, но для запуска другого метода - не работает.
Подскажите, пожалуйста, где ошибка?
Java
1
2
3
4
5
6
7
8
9
10
public void timer(final int timel){                             
        ScheduledExecutorService service2 = Executors.newSingleThreadScheduledExecutor();
        service2.schedule(new Runnable() {
            @Override
            public void run() {
                alert();
            }
        }, timel, TimeUnit.SECONDS);
 
    }
Добавлено через 11 минут
P.S. Метод alert(), конечно же, полностью рабочий (достаточно вызвать его в другом месте).
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2018, 02:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вызова метода по таймеру (Программирование Android):

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

Вызов метода по таймеру - Программирование Android
Здравствуйте, подскажите пожалуйста, почему при повторном нажатии таймер не срабатывает? ...

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

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

Уведомление по таймеру - Программирование Android
Добрый день. Делаю свой первый проект на Андроид студио "https://play.google.com/store/apps/details?id=com.ww4u.orderbook1". Теперь думал...

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

2
Pablito
2631 / 2113 / 656
Регистрация: 12.05.2014
Сообщений: 7,398
Завершенные тесты: 1
06.01.2018, 12:58 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
описание метода schedule гласит
Creates and executes a one-shot action that becomes enabled after the given delay.
переводить надеюсь не нужно? )

надо так
Java
1
2
3
4
5
6
7
8
9
    public void timer(final int timel){
        ScheduledExecutorService service2 = Executors.newSingleThreadScheduledExecutor();
        service2.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                alert();
            }
        }, 0, timel, TimeUnit.SECONDS);
    }
где 0 - это начальная задержка перед первым повтором, можно менять

и надо помнить что метод alert() будет вызываться НЕ из UI потока, поэтому там, дальше могут полететь ошибки при обновлении чего-то на экране
если решать "в лоб" то выныривать в UI поток можно примерно так
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public void timer(final int timel){
        ScheduledExecutorService service2 = Executors.newSingleThreadScheduledExecutor();
        final Handler handler = new Handler(Looper.getMainLooper());
        service2.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        alert();
                    }
                });
            }
        }, 0, timel, TimeUnit.SECONDS);
    }
1
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 342
06.01.2018, 13:17  [ТС] #3
Pablito, да, работает, спасибо)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2018, 13:17
Привет! Вот еще темы с ответами:

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

Слайдшоу, листание картинок по таймеру - Программирование Android
необходимо листать картинки по таймеру. в голове крутится идея использовать VievPager, есть ли какая-то возможность вызывать переход на...

Изменение содержимого TextView по таймеру - Программирование Android
Доброе время суток. У меня возникла проблема с таймером Timer timer = new Timer(); timer.schedule(new TimerTask() { ...

Смена значения TextView по таймеру - Программирование Android
Подскажите, пожалуйста, как решить следующую проблему. Имеется код: public class MainActivity extends Activity { /** *...


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

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

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