当我从我的应用程序按下按钮时,Countdowntimer如何继续在后台运行?

时间:2012-04-05 20:19:11

标签: java android countdowntimer

我的计时器代码是:

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我需要帮助这样做.. 提前致谢。

1 个答案:

答案 0 :(得分:1)

执行所需操作的最简单方法是在活动停止时保存当前系统时间。当它再次恢复时,只需检查它通过了多长时间并相应地更新计时器。要获得当前时间,请使用

System.currentTimeMillis();

有一个长成员变量,它接受onStop中当前时间的值。确保它也保存在onSaveInstanceState中并在onRestoreInstanceState中恢复。进入onResume后,必须将计时器值设置为旧值+(currentTime - savedTime)。