意图服务或服务

时间:2013-11-26 14:50:16

标签: android

我已经创建了Intent服务。在这个服务中我想从服务器获取数据,所以我在Intent服务中使用AsyncTask但是它不起作用,因为IntentService在另一个线程(工作线程)中运行而不是在主线程中而OnPreExecute()和onPostExecute()在主线程中运行。

然后我扩展Service类并在其中编写AsyncTask。它工作正常,因为Service在主线程中运行,因此当我使用onPreExecute()和onPostExcute()时没有发现错误。

当我使用服务和Intent服务时?在我的情况下什么是合适的Intent服务或服务。

1 个答案:

答案 0 :(得分:1)

正如您所说,服务将在UI线程上运行。因此,如果您想要逐出某些后台处理(如网络请求),您可以使用服务并管理自己的线程来实现后台作业。

这里不需要AsyncTask,只需使用普通线程。

但是使用 IntentService 会更容易,因为正如你再次说过的那样,他们有自己的线程来完成后台工作。同样,不要在这里使用AsyncTask,只需在意图服务中执行查询,就是这样。意图服务应仅在处理您的请求时终止。别无其他。

有些图书馆会帮助您实现这一目标,例如RoboSpice