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

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

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

Таймер. Кнопка "Пауза" - Программирование Android

17.07.2016, 17:39. Просмотров 201. Ответов 3
Метки нет (Все метки)

Вобщем, решил попробовать сделать таймер, нашел статью, вроде все получилось, но есть одно НО. Таймер тикает, нажимаю на стоп, останавливается. Потом снова жму на кнопку "Старт", хочу, чтобы отсчет продолжался. Вместо этого сбрасывает все в ноль. Не понимаю что нужно добавить, если кто сможет, посмотрите

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
62
63
64
65
66
67
68
69
70
71
72
73
74
package com.example.newtimer;
 
import android.os.Handler;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
    private Handler mHandler = new Handler();
    private long mStartTime = 0L;
    private TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
         tv = (TextView) findViewById(R.id.textView);
        Button startbtn = (Button) findViewById(R.id.startbutton);
        assert startbtn != null;
        startbtn.setOnClickListener(new View.OnClickListener(){
 
            public void onClick(View v){
                if(mStartTime == 0L) {
                    mStartTime = SystemClock.uptimeMillis();
                    mHandler.removeCallbacks(mUpdateTimeTask);
                    mHandler.postDelayed(mUpdateTimeTask,100); 
 
                }
                else{
 
                    mHandler.post(mUpdateTimeTask);
                }
            }
        });
 
        Button stopbtn = (Button) findViewById(R.id.stopbutton);
        assert stopbtn != null;
        stopbtn.setOnClickListener(new View.OnClickListener(){
 
            public void onClick(View view){
                mHandler.removeCallbacks(mUpdateTimeTask);
            }
        });
 
    }
 
    private Runnable mUpdateTimeTask = new Runnable(){
 
        public void run() {
 
            final long start = mStartTime;
            long millis = SystemClock.uptimeMillis()- start;
 
            int seconds = (int) (millis / 1000);
            int minutes = seconds / 60;
            seconds = seconds % 60;
 
            if (seconds < 10) {
                tv.setText("" + minutes + ":0" + seconds);
            } else {
                tv.setText("" + minutes + ":" + seconds);
            }
 
            mHandler.postAtTime(this,
                    start + (((minutes * 60) + seconds + 1) * 1000));
 
        }
    };
 
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2016, 17:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Таймер. Кнопка "Пауза" (Программирование Android):

Кнопка "Стереть данные", как от нее защититься? - Программирование Android
В настройках приложения есть кнопка &quot;Стереть данные&quot;, она удаляет все данные (в том числе и sql) приложения. 1 Есть ли способ...

Свой Launcher. Срабатывает кнопка "назад" - Программирование Android
Здравствуйте! -Пишу свой простенький Laucher(во многом опирался на этот пример). -Тестирую на телефоне(texet). -При загрузке...

Кнопка "домой", смена ориентации и прочее :) - Программирование Android
Добрый вечер уважаемые. не могу решить вот такую проблему: Сделал пример отсюда:...

Написание программы "Таймер" - Программирование Android
Доброе время суток! Совсем недавно начала изучение Java. Сейчас есть острая необходимость в создании таймера под андроид. Работаю с...

Кнопка "Показать на карте" и MapActivity - Программирование Android
Всем привет, возник такой вопрос. У меня есть список магазинов в RecyclerView во фрагменте. Хочу сделать под каждым магазином надпись...

Кнопка "Back" для приложения - Программирование Android
у меня есть несколько форм и мне необходима кнопка которая будет возвращать меня к предыдущей форме я не знаю как это сделать кто знает...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OlegJV
103 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 472
17.07.2016, 18:25 #2
Что за велосипед? Есть же классы Timer и CountdownTimer. А по теме - в переменной запоминаешь интервал в секундах, по таймеру отнимаешь из неё единицу. При остановке таймера остаток времени в ней сохранится.
0
Alex_244
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 79
18.07.2016, 13:03  [ТС] #3
OlegJV, В том и проблема, я не понимаю где и как это сделать
0
OlegJV
103 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 472
18.07.2016, 13:11 #4
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void startTimer(long interval) {
 
    if (timer != null) {
        timer.cancel();
    }
    timer = new CountDownTimer(interval, 1000) {
    @Override
    public void onTick(long millisUntilFinished) {
        h.sendEmptyMessage(1);
    }
 
    @Override
    public void onFinish() {
        h.sendEmptyMessage(2);
    }
}.start();
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2016, 13:11
Привет! Вот еще темы с ответами:

Не работает кнопка "Home" - Программирование Android
Здравствуйте. Аппаратные кнопки можно обрабатывать через KeyEvent например так @Override public boolean onKeyDown(int...

Системная кнопка "Назад" - Программирование Android
как научить программу реагировать на нажатие этой самой кнопки?

Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры" - Программирование Android
Ребят, всем привет! накидайте какие-нить идеи по реализации ситуация такая есть таблицы - &quot;списки_жанров&quot;, &quot;фильмы&quot;, &quot;режиссеры&quot; мне...

Ошибка "Unknown method "e" of "org.apache.commons.logging.Log" - Программирование Android
Unknown method 'e' of 'org.apache.commons.logging.Log' package com.mycompany.myapp; import android.widget.*; import...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.07.2016, 13:11
Ответ Создать тему
Опции темы

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