如果我做对了,处理程序就像一个队列。所以我的简单问题是,如果我首先发布延迟,那么我会定期发帖。第二篇文章会在第一篇推迟发布后发布吗?
handler.postDelayed(someMethod(), 10000);
handler.post(someOtherMethod());
someOtherMethod()是否会在someMethod()
之后运行答案 0 :(得分:1)
不,不会。当所有挂起的处理程序请求(在UI线程上)完成时,将立即执行第二个。第一个将在10秒后追加。
提示:处理程序采用Runnable
,所以它看起来像这样:
handler.post(new Runnable {
public void run() {
doSomething();
}
}
根据评论更新:
处理程序在调用new Handler()
的线程上调用已发布的runnable。
答案 1 :(得分:0)
不,第二篇文章将尽快开始(在第一篇之前)。
答案 2 :(得分:0)
不,处理程序帖子是异步的。什么handler.post()
它将runnable添加到消息队列。 handler.postDelayed()
立即将runnable添加到消息队列,但定时器将设置为延迟ms,之后将执行runnable。
所以所有帖子都是,将runnable添加到消息队列。