2013-03-01 77 views
1

基本上这是我在做什么,而不是使用Timer我使用的是Handler处理程序而不是定时器?

Handler h = new Handler();  
Runnable r = new Runnable(){ 

public void run(){ 
//do something and schedule it again 
h.postDelayed(r, 10000); 
} 

}; 

我说h.removeCallBacks(r);时,我想阻止它。它不好吗?

+1

向下选民请添加评论... – ngesh 2013-03-01 10:31:43

+1

我认为这是正确的方法。 – njzk2 2013-03-01 10:34:03

+0

当你不想再使用它时,你可以在删除回调后添加一个东西,h = null; – 2013-03-01 11:06:34

回答

5
Is it bad.? 

这并不坏,但该方法只是删除Runnable的待处理文章。

+0

我知道这..这就是我想要的..但​​是不知道整个方式做到这一点.. – ngesh 2013-03-01 10:38:12

+0

你能给我更多的细节? – nlt 2013-03-01 10:47:14

3

不好。

不(除非你有一些问题:))。 不要忘记在方法中取消Runnable,这样您可以取消正在运行的任何待定Runnable可能的死亡活动。

+0

我在做...谢谢.. – ngesh 2013-03-01 10:31:05

+1

@ngesh正如他在回答中提到的那样'removeCallbacks'不会停止当前正在执行的'Runnable'(如果有的话),它将仅仅停止'Runnables'执行。我不知道这是否是你正在做的事情的一个破坏者。 – Luksprog 2013-03-01 10:34:18

+0

我其实如果postdelayed之前的条件..所以这应该不是一个问题......但是,谢谢.. – ngesh 2013-03-01 10:36:31

1

处理程序有两个主要用途:(1)安排消息和 将作为将来的某个点执行;和(2)排队 要在不同于你自己的线程上执行的动作。

相关问题