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

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

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

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

17.07.2016, 17:39. Просмотров 195. Ответов 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));
 
        }
    };
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2016, 17:39     Таймер. Кнопка "Пауза"
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
17.07.2016, 18:25     Таймер. Кнопка "Пауза" #2
Что за велосипед? Есть же классы Timer и CountdownTimer. А по теме - в переменной запоминаешь интервал в секундах, по таймеру отнимаешь из неё единицу. При остановке таймера остаток времени в ней сохранится.
Alex_244
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 78
18.07.2016, 13:03  [ТС]     Таймер. Кнопка "Пауза" #3
OlegJV, В том и проблема, я не понимаю где и как это сделать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2016, 13:11     Таймер. Кнопка "Пауза"
Еще ссылки по теме:

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

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

Кириллица отображается в виде знаков "закорючек в ромбе" - Программирование Android
Если конкретно то вопрос в ромбе. Только кириллица , латиница отображается норм , я понимаю кодировки , но искал пол дня по всему инету -...

Admob interstitial. Запретить закрытие кнопкой "назад" - Программирование Android
Как сделать так, чтобы межстраничное объявление закрывалось только нажатием на экране. А кнопка &quot;назад&quot; была не активна или выскакивал...


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

Или воспользуйтесь поиском по форуму:
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
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();
}
Yandex
Объявления
18.07.2016, 13:11     Таймер. Кнопка "Пауза"
Ответ Создать тему
Опции темы

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