2011-10-12 68 views
0

我正在使用倒数计时器执行重复任务。我想确定我在做什么是有效的,因为我不确定倒数计时器对象是否在超时时被破坏。如果我调用取消方法,同样的问题也适用。这里是我的代码:合法使用倒数计时器吗?

public class MyCount extends CountDownTimer 
    { 
     public MyCount(long millisInFuture, long countDownInterval) 
     { 
     super(millisInFuture, countDownInterval); 
     } 

     @Override 
     public void onFinish() 
     { 
     new myAsyncTask().execute(); 
     this.start(); 
     } 

     @Override 
     public void onTick(long millisUntilFinished) 
     { 
     } 
    } 
+0

您是否尝试过运行此代码?它是否按预期工作?当从countDownTimer类中调用.cancle()和.start()时,我看到问题出现。这[后](http://stackoverflow.com/questions/3138348/how-to-stop-cancel-android-countdowntimer)也看到了这个问题,以及 –

+0

它似乎工作正常。我只关心该对象可能已被释放,但仍在内存中,标记为垃圾收集。 –

回答

0

你在做什么很好。只有当对象不再可达时,定时器对象才会被释放。也就是说,你可以在同一个对象上重复调用timer.start()。 timer.cancel()也不释放该对象。你可以调用timer.cancel()然后调用timer.start()来重置定时器,全部在同一个对象上。