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

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

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

CountDownTimer запуск в цикле - Android

24.03.2016, 20:09. Просмотров 241. Ответов 1
Метки нет (Все метки)

У меня есть класс где я реализовал таймер:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.lineup.intervaltimer;
import android.os.CountDownTimer;
 
public class Timer {
    private int time; //time in millies
    private final int millisPerSeconds = 1000;
    private CountDownTimer timer;
 
    Timer(int s) {
        setTime(toMillis(s));
    }
    Timer(int m, int s) {
        setTime(toMillis(m, s));
    }
    Timer(int h, int m, int s) {
        setTime(toMillis(h, m, s));
    }
 
    public int toMillis(int s) {
        return s*millisPerSeconds;
    }
    public int toMillis(int m, int s) {
        return ((m*60)+s)*millisPerSeconds;
    }
    public int toMillis(int h, int m, int s) {
        return (((h*60)*60)+((m*60)+s))*millisPerSeconds;
    }
 
    public int[] toTime(int millis) {
        int h, m, s, temp;
        temp = millis / millisPerSeconds;
        s = temp % 60;
        temp = temp-s;
        temp = temp / 60;
        m = temp % 60;
        temp = temp - m;
        h = temp / 60;
        int time[] = {h,m,s};
        return time;
    }
 
    public void setTime(int millis) {
        time = millis;
    }
 
    public void start() {
        if(timer!=null) timer.cancel();
        int countDownMillies = time + 2000;
        timer = new CountDownTimer(countDownMillies, millisPerSeconds) {
            @Override
            public void onTick(long millisUntilFinished) {
                show((int)millisUntilFinished);
            }
            @Override
            public void onFinish() {}
        }.start();
    }
    public void show(int millis) {
        //будет реализовано позже
    }
}
Нужно иметь возможность запускать таймеры в цикле и перед чтобы запуском следуещего программа ожидала завершение предыдущего. Пример:
Java
1
2
3
4
5
6
Timer timer1, timer2;
timer1 = new Timer(5);
timer2 = new Timer(2);
for(int i=0; i<2; i++) {
timer1.start();
timer2.start(); }
Как это возможно реализовать?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2016, 20:09     CountDownTimer запуск в цикле
Посмотрите здесь:

Пауза в цикле Android
Выполнение функции в цикле или ? Android
Android Как мне обратиться к кнопкам в цикле?
Пройтись по всем editText в цикле Android
О жизненном цикле приложения Android
Остановка выполнения таймера (CountDownTimer) из другого класса Android
Android Перебор id ресурсов в цикле
Android CountDownTimer - "в приложении произошла ошибка"
Android Обращение к различными наименованиям в цикле
Android Join в цикле while
Борьба за TextView при работе с CountDownTimer Android
Android Сделать бесконечный CountDownTimer

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
JavaStarter
11 / 11 / 3
Регистрация: 14.05.2015
Сообщений: 52
24.03.2016, 20:44     CountDownTimer запуск в цикле #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class MyThread implements Runnable{
    Timer timer;
    
    public MyThread(Timer timer){
        this.timer = timer;
    }
 
    public void run(){  
        try {
            timer.start();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        Timer timer1 = new Timer(5);
        Timer timer2 = new Timer(3);
        
        for(int i=0; i<2; i++){
        
        Thread thread1 = new Thread(new MyThread(timer1));
        Thread thread2 = new Thread(new MyThread(timer2));
        thread1.start();
        thread1.join();
        thread2.start();
        thread2.join();
        
        }
        
    }
Yandex
Объявления
24.03.2016, 20:44     CountDownTimer запуск в цикле
Ответ Создать тему
Опции темы

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