Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
avvvl
3 / 3 / 1
Регистрация: 16.06.2013
Сообщений: 185
#1

Остановка выполнения таймера (CountDownTimer) из другого класса - Программирование Android

28.11.2014, 10:24. Просмотров 1650. Ответов 7
Метки нет (Все метки)

При входе в активити в методе onCreate выполняется таймер:
Java
1
2
3
4
5
6
7
8
9
new CountDownTimer(40000, 1000) {
 
         public void onTick(long millisUntilFinished) {
        ..........................
         }
         public void onFinish() {
             ............................
         }
      }.start();
Если я нажимаю кнопку onBackPressed(возврат на предыдущее активити), то я перейду на старое активити, тем не менее сам таймер выполниться, как бы его заблокировать при переходе? Запретить возврат на предыдущее активити не вариант(сразу говорю).
У меня возникла мысль сделать глобальную переменную типо:
Java
1
public static CountDownTimer count_timer;
И при переходе писать что-то типо Class.count_timer.stop();
Но даже не знаю как запустить с таким раскладом, вот так не пишется: count_timer(40000, 1000)
http://www.cyberforum.ru/android-dev/thread1921312.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2014, 10:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Остановка выполнения таймера (CountDownTimer) из другого класса (Программирование Android):

CountDownTimer запуск в цикле
У меня есть класс где я реализовал таймер: package com.lineup.intervaltimer;...

Не могу остановить CountDownTimer
Всем доброго времени суток. Пытаюсь написать таймер обратного отсчета до...

CountDownTimer сбрасывает экран
Если во время того, как был запущен таймер закрыть activity, то после того, как...

Сделать бесконечный CountDownTimer
Использую CountDownTimer он в моем случае удобней обычного Timer, но проблема в...

Как убить поток в CountDownTimer?
Привет, бойцам невидимого фронта! есть эдакий кастомный CountDownTimer.java:...

7
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
28.11.2014, 10:34 #2
Лучший ответ Сообщение было отмечено avvvl как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
//В теле класса
CountDownTimer timer;
//В onCreate()
timer = new  CountDownTimer(40000, 1000){
.....
 
};
timer.start
//В onBackPressed
timer.stop();
1
avvvl
3 / 3 / 1
Регистрация: 16.06.2013
Сообщений: 185
28.11.2014, 10:44  [ТС] #3
Там нету метода stop();
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
28.11.2014, 10:46 #4
avvvl, да, нет такого метода. Используйте cancel().
0
avvvl
3 / 3 / 1
Регистрация: 16.06.2013
Сообщений: 185
28.11.2014, 11:09  [ТС] #5
Еще вопрос, может вы знаете. В onCreate я запускаю поток, который выполнится через определенное время: handler();
Java
1
2
3
4
5
6
7
8
9
10
    private void handler() {
        Handler handler = new Handler(); 
        handler.postDelayed(new Runnable() { 
             public void run() { 
.........................................
             }
 
        }, 5000);
        
    };
И вот когда покидаю активити все равно этот поток выполнится, там включается музыка в фоне(не отдельное активити). может в этом дело?
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
28.11.2014, 11:21 #6
Java
1
2
3
4
5
6
7
8
9
10
11
12
//В onCreate()
 
static Activity activity = this;
 
handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                if(activity.isTaskRoot()){
                    //тут то что должно сработать в потоке.
                }
            }
        }, 5000);
Вариант не оптимальный конечно, если что-то придумаю получше - напишу.
0
avvvl
3 / 3 / 1
Регистрация: 16.06.2013
Сообщений: 185
28.11.2014, 12:08  [ТС] #7
А если типо проверять через булевую переменную - то это вариант правильней, или лучше уж ваш вариант?
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
28.11.2014, 12:12 #8
Нужно получить состояние в момент срабатывания кода, раньше определять какую-то переменную не имеет смысла.
0
28.11.2014, 12:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2014, 12:12
Привет! Вот еще темы с решениями:

Борьба за TextView при работе с CountDownTimer
Добрый день. Проблема заключается в следующем: есть таймер, наследованный от...

Вызов Context из другого класса
Как вызвать Context из класса Output public class MapsActivity extends...

Функция activity из другого класса
Есть главная activity и создаю класс для отрисовки графики: Activity: public...

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


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

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

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