如何在Android中启动增量计时器

如何在Android中启动增量计时器,android,timer,handler,Android,Timer,Handler,在提问之前,让我告诉你们这个问题已经被回答了很多次,但我并没有解决我的问题。 我试着回答,但没有真正的帮助 所以问题是,我正在用android创建一个智囊团游戏,我想从用户输入第一个PIN时的00:00开始计时,直到用户点击最后一个PIN,或者当用户点击新游戏时,计时器将重置,直到用户再次输入第一个PIN时才会启动 这是我的尝试 Handler timerHandler = new Handler(); Runnable timerRunnable = new Runnable() {

在提问之前,让我告诉你们这个问题已经被回答了很多次,但我并没有解决我的问题。 我试着回答,但没有真正的帮助

所以问题是,我正在用android创建一个智囊团游戏,我想从用户输入第一个PIN时的00:00开始计时,直到用户点击最后一个PIN,或者当用户点击新游戏时,计时器将重置,直到用户再次输入第一个PIN时才会启动

这是我的尝试

Handler timerHandler = new Handler();
Runnable timerRunnable = new Runnable() {

    @Override
    public void run() {
        long millis = System.currentTimeMillis() - startTime;
        int seconds = (int) (millis / 1000);
        int minutes = seconds / 60;
        seconds = seconds % 60;

        timerTextView.setText(String.format("%d:%02d", minutes, seconds));

        timerHandler.postDelayed(this, 500);
    }
};
启动或停止计时器的功能

@Override
public void onPause() {
    super.onPause();
    timerHandler.removeCallbacks(timerRunnable);
    timerCheck = true;
}
当用户点击第一个PIN时,执行此代码

timerCheck = true;
startTimer();
当用户点击最后一个PIN时,执行此代码

timerCheck = false;
startTimer();
什么都没用 请帮助我在第一个条件为真时启动计时器,在最后一个条件为真时停止计时器,在这两者之间,如果NewGame get Hit计时器将重置,并且在第一个Pin再次被击中之前不要启动。 任何帮助都将不胜感激。
提前谢谢

我刚刚解决了我的问题,下面是我是如何解决的

声明

private Handler customHandler = new Handler();
private long startTime = 0L;
long timeInMilliseconds = 0L;
long timeSwapBuff = 0L;
long updatedTime = 0L;
当第一个PIN输入时启动计时器

startTime = SystemClock.uptimeMillis();
customHandler.postDelayed(updateTimerThread, 0);
当最后一个PIN输入时暂停计时器

timeSwapBuff += timeInMilliseconds;
customHandler.removeCallbacks(updateTimerThread);
主运行

private Runnable updateTimerThread = new Runnable() {

    public void run() {

        timeInMilliseconds = SystemClock.uptimeMillis() - startTime;

        updatedTime = timeSwapBuff + timeInMilliseconds;

        secs = (int) (updatedTime / 1000);
        mins = secs / 60;
        secs = secs % 60;
        int milliseconds = (int) (updatedTime % 1000);
        timerTextView.setText(String.format("%02d", mins) + ":"
                + String.format("%02d", secs));
        customHandler.postDelayed(this, 0);
    }

};
这对我来说很好,希望对你们也一样