我已经创建了service.In这个服务,我想从服务器获取数据,所以我在意图服务中使用AsyncTask,但是它不能工作,因为IntentService运行在另一个线程(工作线程)中,而不是在主线程中,而OnPreExecute()和onPostExecute()在主线程中运行。
然后,我扩展了Service并用it.It编写了it.It,因为服务在主线程中运行,所以在使用onPreExecute()和onPostExcute()时没有发现错误。
当我使用服务和意图服务?在我的情况下,什么是合适的意向服务或服务。
发布于 2013-11-26 14:57:48
正如您所说,服务将在UI线程上运行。因此,如果您想导出一些后台处理(比如网络请求),您可以使用一个服务并管理您自己的线程来完成后台任务。
这里不需要AsyncTask,只需使用普通线程即可。
但是使用IntentService要容易得多,因为正如您所说的,他们有自己的线程来完成后台工作。同样,这里不要使用AsyncTask,只需在意图服务中执行查询,仅此而已。只有在处理请求时,意向服务才会终止。别无事可做。
有些库将帮助您实现这一点,比如RoboSpice。
https://stackoverflow.com/questions/20220327
复制相似问题