2017-04-03 29 views
0

我的代码是像下面是否使用Handler.postDelayed计划runnable等到当前可运行结束?

mNonUIHandler.post(runnable1); 
mNonUIHandler.postDelayed(runnable2, 20*1000); 

假设runnable1需要30秒才能完成。 runnable2是否会在runnable1结束之前(现在+30秒)运行,直到runnable1结束或运行时(现在+20秒)?

+0

都不是。您的应用程序将因应用程序无响应错误而崩溃,因为您正在占用主应用程序线程太长时间。 – CommonsWare

+0

我更新了我的帖子,指出Handler是非UI处理程序。 – Kai

回答

0

您将它发布到的处理程序运行在它创建的线程上。线程一次只能做一件事。所以是的,它会等到第一个(和事件队列中的其他事件)完成之后再运行新的事件。如果您需要立即运行它,则需要创建一个新的线程而不是发布消息。

相关问题