Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Aecttann
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 343
#1

Вызова метода по таймеру

06.01.2018, 02:00. Просмотров 841. Ответов 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
Ответы с готовыми решениями:

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

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

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

Метод фрагмента onResume() перестает вызываться после вызова метода recreate() для Activity
Такая проблема:после вызова метода recreate() методы фрагментов onCreate() and...

Уведомление по таймеру
Добрый день. Делаю свой первый проект на Андроид студио...

2
Pablito
2707 / 2154 / 731
Регистрация: 12.05.2014
Сообщений: 7,521
Завершенные тесты: 1
06.01.2018, 12:58 #2
Лучший ответ Сообщение было отмечено Aecttann как решение

Решение

описание метода 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 / 5
Регистрация: 19.10.2013
Сообщений: 343
06.01.2018, 13:17  [ТС] #3
Pablito, да, работает, спасибо)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2018, 13:17

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

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

Выполнение действия по таймеру
Здравствуйте, подскажите пожалуйста, надо по клику на кнопку показать Layaut,...


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

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

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