2012-04-05 2 views
0

Мой код таймера:Как Countdowntimer continue Запуск в фоновом режиме, когда я нажимаю кнопку «Назад» из моего приложения?

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


     } } 

когда я даю ввод в минуту и ​​секунд, а затем нажмите кнопку огня таймер start.But, когда я выйти из приложения, то таймер не продолжать работать в фоновом режиме. Я хочу продолжить запуск таймера, когда я выхожу из своего приложения, и когда я запустил приложение, я вижу, что работает таймер..plz мне нужна помощь для этого. заранее.

ответ

1

Самый простой способ сделать то, что вы хотите, - сохранить текущее системное время, когда ваша деятельность остановлена. Когда он снова будет возобновлен, просто проверьте, сколько времени прошло, и соответствующим образом обновите таймер. Чтобы получить текущее время, используйте

System.currentTimeMillis(); 

Имейте длинную переменную-член, которая принимает значение текущего времени в onStop. Убедитесь, что он также сохранен в onSaveInstanceState и восстановлен в onRestoreInstanceState. Когда вы находитесь в onResume, значение таймера должно быть установлено на старое значение + (currentTime - savedTime).

 Смежные вопросы

  • Нет связанных вопросов^_^