0

我的计时器代码是:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    initializer();
    fire.setOnClickListener(this);
}

private void initializer() {

    minute = (EditText) findViewById(R.id.etMinute);
    seconds = (EditText) findViewById(R.id.etSeconds);
    fire = (Button) findViewById(R.id.bFireTimer);
    Remain=(TextView)findViewById(R.id.tvRemain);
}



@Override
public void onClick(View v) {
    switch (v.getId()) {

    case R.id.bFireTimer:

                min=minute.getText().toString();
                sec=seconds.getText().toString();
                int MIN= Integer.parseInt(min);
                int SEC=Integer.parseInt(sec);
                long TIME= (MIN*60)+SEC;
                timercount =  new MyCount(TIME * 1000, 1000);
                timercount.start();


        break;
    }

}

public class MyCount extends CountDownTimer {

     public MyCount(long millisInFuture, long countDownInterval) {
          super(millisInFuture, countDownInterval);
      }

      @Override
      public void onFinish() {
          //some script here
      }

      @Override
      public void onTick(long millisUntilFinished) {

       //some  script here 
         int remseconds=(int)millisUntilFinished/1000;
        int remminuts=remseconds/60;
            remseconds= remseconds%60;
            remminuts= remminuts%60;
            Remain.setText(String.format("%d : %02d" , remminuts,remseconds));



         // Remain.setText(""+millisUntilFinished);


      }   }

当我在分钟和秒内输入并按下启动按钮时,计时器将启动。但是当我退出我的应用程序时,计时器不会继续在后台运行。我想在我退出应用程序时继续运行计时器并且当我启动我的应用程序时,我看到正在运行的计时器..plz 我需要帮助才能做到这一点..提前谢谢。

4

1 回答 1

1

做您想做的最简单的方法是在您的活动停止时保存当前系统时间。当它再次恢复时,只需检查它经过了多长时间并相应地更新计时器。获取当前时间使用

System.currentTimeMillis();

Have a long member variable that takes the value of current time in onStop. Make sure it's also saved in onSaveInstanceState and restored in onRestoreInstanceState. Once you are in onResume the timer value must be set to old value + (currentTime - savedTime).

于 2012-04-05T21:01:11.213 回答