我希望每100毫秒更新UI。在StackOverflow上搜索后,我发现可以使用Runnable
和Handler
实现,如下所示:
final Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
//update UI here
handler.postDelayed(this, 100);
}
};
runnable.run();
它有效!但我有一些问题:
Handler
附加在MainThread上,那么Runnable
是在MainThread上运行吗?
- 如果
Runnable
在MainThread上运行,为什么需要Handler
?根据我的了解,Handler
用于在两个线程之间发送消息。
postDelayed
吗? - payloc91runnable.run()
首先由当前线程调用。下一次及以后,它将由Handler
调用,而不是第一次。 - user207421Runnable
在UI线程上运行”以及我的评论都是指向OP的代码,这才是问题实际关注的内容。 - user207421Runnable
执行是由Handler
调用的。从一开始,您就在单独的线程上运行,... - payloc91