如何阻止主线程直到Intent服务完成?

时间:2014-03-28 07:14:00

标签: android

Program structure :

Service (running in main thread) {

start intent service 1
start intent service 2

// here I have to wait until both intent services have completed. They don't return any data.
//... some code
}

我在OF - Android:: Blocking main thread for worker thread to finish before executing other tasks in main thread上看了一个类似的问题,但它没有#39;帮助

2 个答案:

答案 0 :(得分:3)

你不是。如果你阻止主线程,你的手机似乎被冻结,最终应用程序将被杀死或至少提示用户杀死它。相反,您希望您的意图服务将结果返回给活动,并让活动跟踪哪些返回。当它们都有时,它应该进行适当的处​​理。但在任何情况下都不应该阻止主线程。

答案 1 :(得分:1)

无法阻止主线程 .intent服务并不意味着阻塞主线程,但它作为具有特定任务的临时后台服务工作,并在任务完成时向主线程报告。

所以你不能阻止,但你可以把意图服务任务完成后执行的其他逻辑。 (当任务完成时,它将在广播接收器中通知,因此您可以使用在意图服务任务完成时调用的广播接收器。)