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

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

Войти
Регистрация
Восстановить пароль
 
avvvl
3 / 3 / 0
Регистрация: 16.06.2013
Сообщений: 177
#1

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

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

Как изменить Textview из другого класса (класса адаптера RecyclerView) - Программирование Android
У меня есть список RecyclerView тоесть этот файл Basket и файл что реализует cardwiew BasketAdapter. как мне изменить TextView allPrice из...

CountDownTimer запуск в цикле - Программирование Android
У меня есть класс где я реализовал таймер: package com.lineup.intervaltimer; import android.os.CountDownTimer; public class...

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

Не могу остановить CountDownTimer - Программирование Android
Всем доброго времени суток. Пытаюсь написать таймер обратного отсчета до определенной даты и времени. И все работает хорошо, до момента...

Как убить поток в CountDownTimer? - Программирование Android
Привет, бойцам невидимого фронта! есть эдакий кастомный CountDownTimer.java: package com.dis.medprog; /* * Copyright (C)...

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

7
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
28.11.2014, 10:34 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 / 0
Регистрация: 16.06.2013
Сообщений: 177
28.11.2014, 10:44  [ТС] #3
Там нету метода stop();
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
28.11.2014, 10:46 #4
avvvl, да, нет такого метода. Используйте cancel().
0
avvvl
3 / 3 / 0
Регистрация: 16.06.2013
Сообщений: 177
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
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 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 / 0
Регистрация: 16.06.2013
Сообщений: 177
28.11.2014, 12:08  [ТС] #7
А если типо проверять через булевую переменную - то это вариант правильней, или лучше уж ваш вариант?
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

Получение данных из другого класса - Программирование Android
Подскажите как решить проблему. У меня есть два класса разнесенных по разным файлам: ListFragment и DialogFragment. Cуть...

Импорт класса из другого проекта - Программирование Android
Подскажите, пожалуйста, каким образом я могу импортировать класс Java, который был объявлен в другом проекте (среда - Eclipse) ? ...

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

Функция activity из другого класса - Программирование Android
Есть главная activity и создаю класс для отрисовки графики: Activity: public class General extends Activity { @Override ...


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

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

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