基本上这是我在做什么,而不是使用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);
时,我想阻止它。它不好吗?
基本上这是我在做什么,而不是使用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);
时,我想阻止它。它不好吗?
不好。
不(除非你有一些问题:))。 不要忘记在方法中取消Runnable
,这样您可以取消正在运行的任何待定Runnable
可能的死亡活动。
处理程序有两个主要用途:(1)安排消息和 将作为将来的某个点执行;和(2)排队 要在不同于你自己的线程上执行的动作。
向下选民请添加评论... – ngesh 2013-03-01 10:31:43
我认为这是正确的方法。 – njzk2 2013-03-01 10:34:03
当你不想再使用它时,你可以在删除回调后添加一个东西,h = null; – 2013-03-01 11:06:34