Handler.postDelayed v/s Runnable.run。可以调用 .运行 而不是 .postDelayed 吗?
Handler.postDelayed v/s Runnable.run. Is it alright to call .run instead of .postDelayed?
我正在尝试实现循环 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()
!
,我可能遇到的麻烦是什么?
谢谢! :)
I prefer using the call to the run() method to start the Runnable.
好的。
What would be the possible troubles that I could get into if any by a direct call to run()!
第一次通过 run()
会立即发生,而不是你注释掉的代码,这将导致第一次通过 run()
发生在从现在开始约 1000 毫秒。
不过,我会转储 Handler
。 postDelayed()
也是 View
上的一种方法,因此只需在 UI 中使用一些小部件即可。
如果调用r.run()
,Runnable
会立即执行。但是,如果您按照他们的建议调用 handler.postDelayed(r, 1000);
,则 Runnable
将在 1s 过去后才会执行。所以,这是第一点。第二,为什么不用Android
提供的Thread Loop merchanism
,即Handler
AsyncTask
HandlerThread
,因为Android
非常支持嗯?
我正在尝试实现循环 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()
!
谢谢! :)
I prefer using the call to the run() method to start the Runnable.
好的。
What would be the possible troubles that I could get into if any by a direct call to run()!
第一次通过 run()
会立即发生,而不是你注释掉的代码,这将导致第一次通过 run()
发生在从现在开始约 1000 毫秒。
不过,我会转储 Handler
。 postDelayed()
也是 View
上的一种方法,因此只需在 UI 中使用一些小部件即可。
如果调用r.run()
,Runnable
会立即执行。但是,如果您按照他们的建议调用 handler.postDelayed(r, 1000);
,则 Runnable
将在 1s 过去后才会执行。所以,这是第一点。第二,为什么不用Android
提供的Thread Loop merchanism
,即Handler
AsyncTask
HandlerThread
,因为Android
非常支持嗯?