我试图实现循环Runnable
。我发现的例子似乎使用以下想法来启动runnable。
handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
handler.postDelayed(this, 10000);
doIt();
count ++;
}
};
r.run();// what I prefer
// handler.postDelayed(r, 1000);//their idea
我更喜欢使用run()
方法调用来启动Runnable
。如果直接打电话给run()
,我可能会遇到什么麻烦!
谢谢! :)
答案 0 :(得分:3)
如果您致电r.run()
,Runnable
将立即执行。但是,如果您按照建议调用handler.postDelayed(r, 1000);
,则{1}}将在1秒过后才会执行。所以,这是第一点。其次,为什么不使用Runnable
提供的Thread Loop merchanism
,Android
Handler
AsyncTask
为HandlerThread
支持它很好吗?
答案 1 :(得分:1)
我更喜欢使用run()方法调用来启动Runnable。
行。
如果直接调用run(),我可以遇到什么麻烦!
第一次通过run()
会立即发生,而不是您的注释掉的代码,这会导致第一次通过run()
从现在开始大约1000毫秒。
但是,我会转储Handler
。 postDelayed()
也是View
上的一种方法,因此只需在用户界面中使用一些小部件即可。