2014-09-20 104 views
1

我有一个Android服务在后台运行。 我想的时间(22秒),一定时间后得到通知,所以我写了:CountDownTimer不准确

private CountDownTimer mCountDownTimer = new CountDownTimer(22*1000,22*1000) { 

    public void onTick(long millisUntilFinished) {} 

    public void onFinish() { 
     doSomething(); 
    } 
}; 

我运行它,并在40秒后得到通知,甚至50秒。难道我做错了什么?如何才能做到这一点?

+0

您是否尝试过与(第二)输入(S)玩耍? 也许这有助于:http://developer.android.com/reference/android/os/CountDownTimer.html 你在哪里开始倒计时? – JRsz 2014-09-20 11:05:41

+0

不要将countDownInterval设置为与millisInFuture相同。将其设置为1000毫秒 – 2014-09-20 11:35:16

回答

0

其实你是间隔时间为wll 22000,这是你做错了什么。第二个参数是interval.So,这样做:

CountDownTimer alertTimer =新CountDownTimer(22 * 1000,1000){

 @Override 
     public void onTick(long millisUntilFinished) { 

      // Do here what you want 


     } 

     @Override 
     public void onFinish() { 

     } 
    }.start(); 
+0

我没有看到任何间隔等于倒数超时的问题,但我会尝试。 – DuduArbel 2014-09-20 14:39:00

+0

在该间隔时间之后它会减少或增加多少间隔,即如果您放置2000毫秒,则每次定时器将在2秒后递增1,这将会明确 – 2014-09-22 04:57:38