【发布时间】:2015-04-18 12:20:29
【问题描述】:
我试图实现循环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(),我可能会遇到什么麻烦!
谢谢! :)
【问题讨论】:
-
您希望它现在运行,还是在 1000 毫秒后运行?
-
处理程序有什么问题?为什么你不喜欢它们,它们解决了很多你在跑步时会遇到的问题。
-
@immibis 我不确定 postDelayed 是否会做更多的事情,而不仅仅是将其延迟发布到队列中。看起来没什么别的了。
-
@BojanKseneman 只是不舒服而已。你能详细说明一下吗? :)
-
本身就可以很好地运行它非常愚蠢。当你试图通知它某事、中断它、取消它、从另一个线程传递一些数据时,你会发现它缺乏功能。如果您知道如何正确使用它,Handler 会为您处理这些案例。我建议您了解更多关于它的信息,您可能会开始喜欢它并避免运行可运行文件。最重要的是它是线程安全的,它允许线程之间的通信!
标签: java android multithreading runnable android-handler