当我从应用程序中按“后退”按钮时,Countdowntimer如何继续在后台运行? [英] How Countdowntimer continue Running in the background when i press back button from my application?

查看:170
本文介绍了当我从应用程序中按“后退”按钮时,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,我需要这样做的帮助。.
预先感谢。

when i give input in minute and seconds and press the fire button the timer will start.But when i exit from my application then the timer is not continue running in the background.I want to continue run the timer when i exit from my application and when i start my application i see the running timer..plz i need help for doing this.. thanks in advance.

推荐答案

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

The easiest way to do what you want is to save the current system time when your activity is stopped. When it is resumed again just check how long it passed and update the timer accordingly. To get the current time use

System.currentTimeMillis();

有一个长成员变量,该变量采用onStop中的当前时间值。确保它也保存在onSaveInstanceState中并还原到onRestoreInstanceState中。一旦进入onResume,计时器值必须设置为旧值+(currentTime-savedTime)。

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).

这篇关于当我从应用程序中按“后退”按钮时,Countdowntimer如何继续在后台运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆