2016-01-23 107 views
-2

我正在製作一個簡單的應用程序,我開始倒數計時器,例如, 25到0,當計時器到期時,它顯示一個模板。但是當我的手機被鎖定時,計時器將被暫停,當我解鎖時,它將恢復。我可以做些什麼繼續計時器?當onPause被調用時,倒數計時器仍然繼續

public class MyActivity extends Activity { 
TextView tvCountDown; 
MyCount counter; 
long countDownInterval = 1000; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    setTheme(android.R.style.Theme_Light_NoTitleBar_Fullscreen); 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_auth); 
    tvCountDown = (TextView) findViewById(R.id.tvCountDown); 
    counter = new MyCount(6000, countDownInterval); 
     counter.start(); 
} 
public class MyCount extends CountDownTimer 
{ 

    public MyCount(long millisInFuture, long countDownInterval) 
    { 
     super(millisInFuture, countDownInterval); 
    } 
    public void onTick (long millisUntilFinished) 
    { 
     Log.v("test","onTick Seconds: "+millisUntilFinished+" : "+(millisUntilFinished/1000)); 
     tvCountDown.setText (formatTime(millisUntilFinished)); 
     System.out.print(""); 
    } 
    public void onFinish() { 
     tvCountDown.setText("done!"); 
    } 
    public String formatTime(long millis) 
    { 
     String output = "00:00:00"; 
     long seconds = millis/1000; 
     long minutes = seconds/60; 
     long hours = minutes/60; 

     seconds = seconds % 60; 
     minutes = minutes % 60; 
     hours = hours % 60; 

     String secondsD = String.valueOf(seconds); 
     String minutesD = String.valueOf(minutes); 
     String hoursD = String.valueOf(hours); 

     if (seconds < 10) 
      secondsD = "0" + seconds; 
     if (minutes < 10) 
      minutesD = "0" + minutes; 
     if (hours < 10) 
      hoursD = "0" + hours; 

     output = hoursD + " : " + minutesD + " : " + secondsD; 
     return output; 
    } 
} 
+1

請張貼一些代碼。 – Rohit5k2

回答

0

只要調用.cancel()方法,當你的活動/碎片將銷燬。

如果你想暫停/恢復你的計時器去this答案;

+0

但是當.cancel被調用時,定時器將不會被恢復,但是當活動在後臺時我想暫停定時器,並且當調用onResume時定時器將會恢復 –