2013-03-01 36 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)排隊 要在不同於你自己的線程上執行的動作。

相關問題