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

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

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

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

17.07.2016, 17:39. Просмотров 178. Ответов 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
Android Системная кнопка "Назад"
Unexpected namespace prefix "map" found for tag fragment Android
Android Кнопка "Back" для приложения
Android Не работает кнопка "Home"
Android Свой Launcher. Срабатывает кнопка "назад"
Android Написание программы "Таймер"
SQLite, ошибка: не существует поля "почта" в базе данных Android
Услуга - "поругайте мой код" есть тут такая?) Android
"Error while reading RSS" при попытке загрузить новости Android
Отключить перескакивание между edittext после нажатия "готово" Android
Android UnknownHostException: Unable to resolve host "api.openweathermap.org"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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, В том и проблема, я не понимаю где и как это сделать
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