【问题标题】:Countdown timer still continues when onPause is called调用 onPause 时,倒数计时器仍会继续
【发布时间】:2016-01-23 11:02:46
【问题描述】:

我正在制作一个简单的应用程序,我可以在其中启动倒数计时器,例如25到0,当计时器到期时,它会显示一个模板。但是当我的手机被锁定时,计时器将暂停,当我解锁时,它将恢复。我可以为继续计时器做什么?

public class MyActivity extends Activity {
TextView tvCountDown;
MyCount counter;
long countDownInterval = 1000;
@Override
public void onCreate(Bundle savedInstanceState) {
    setTheme(android.R.style.Theme_Light_NoTitleBar_Fullscreen);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_auth);
    tvCountDown = (TextView) findViewById(R.id.tvCountDown);
    counter = new MyCount(6000, countDownInterval);
        counter.start();
}
public class MyCount extends CountDownTimer 
{

    public MyCount(long millisInFuture, long countDownInterval) 
    {
        super(millisInFuture, countDownInterval);
    }
    public void onTick (long millisUntilFinished) 
    {
        Log.v("test","onTick Seconds: "+millisUntilFinished+" : "+(millisUntilFinished / 1000));
        tvCountDown.setText ( formatTime(millisUntilFinished));
        System.out.print("");
    }
    public void onFinish() {
        tvCountDown.setText("done!");
    }
    public String formatTime(long millis) 
    {
        String output = "00:00:00";
        long seconds = millis / 1000;
        long minutes = seconds / 60;
        long hours = minutes / 60;

        seconds = seconds % 60;
        minutes = minutes % 60;
        hours = hours % 60;

        String secondsD = String.valueOf(seconds);
        String minutesD = String.valueOf(minutes);
        String hoursD = String.valueOf(hours); 

        if (seconds < 10)
            secondsD = "0" + seconds;
        if (minutes < 10)
            minutesD = "0" + minutes;
        if (hours < 10)
            hoursD = "0" + hours;

        output = hoursD + " : " + minutesD + " : " + secondsD;
        return output;
    }
}

【问题讨论】:

  • 请贴一些代码。

标签: java android countdowntimer onpause


【解决方案1】:

当您的活动/片段要销毁时,只需调用.cancel() 方法。

如果你想暂停/恢复你的计时器去this回答;

【讨论】:

  • 但是当 .cancel 被调用时,定时器将不会被恢复,但我想在活动处于后台时暂停定时器,并且在调用 onResume 时定时器将被恢复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多