How Countdowntimer continue Running in the background when i press back button from my application?

China☆狼群 提交于 2019-12-23 05:10:39

问题


My timer code is:

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


      }   }

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.


回答1:


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();

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



来源:https://stackoverflow.com/questions/10035399/how-countdowntimer-continue-running-in-the-background-when-i-press-back-button-f

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!