如果我在IntentService中使用AsyncTask会发生什么?

时间:2014-09-29 12:32:01

标签: java android android-activity

我想知道。当我在IntentService中使用AsyncTask时会发生什么。

3 个答案:

答案 0 :(得分:2)

一旦onHandleIntent()返回,如果没有更多未完成的工作要完成,服务将被销毁。如果AsyncTask仍在运行,您将泄露该线程。我们无法保证您的流程能够保持足够长的时间,以便AsyncTask完成其工作。

由于IntentService已经为您提供了一个后台线程 - onHandleIntent()运行的后台线程 - 因此不需要另一个后台线程。只需将doInBackground()逻辑放在onHandleIntent()的{​​{1}}。

此外,通常,不需要在任何服务中使用IntentService,因为服务无需在主应用程序线程上执行任何操作。

答案 1 :(得分:0)

你可以在意图服务中使用异步任务,它将完美运行。因为,intentService是在没有Ui交互的情况下运行后台任务,但是最好不要在intentService中使用异步任务。当你使用时,它会很有帮助。在intentService中使用多个长操作,否则会触发设备

答案 2 :(得分:0)

我认为在IntentService中执行AsyncTask完全是个坏主意。我在JobIntentService中有AsyncTask的经验,这与IntentService不同,但会导致崩溃。只需将代码放在onHandleIntent()的doInBackground()内即可。