我正在设计一个使用xmpp的聊天应用程序,以便用更好的解决方案替换我的AsyncTask
(没有内存泄漏,配置更改无效,管理作业队列,运行不仅仅是1 AsyncTask
,等等。)
我想出了一个解决方案:IntentService
。起初,每件事情看起来都太好了,这让你怀疑它太好了,我的AsyncTask
生活在一个可以运行数天的服务中,他们的工作就是做网络发送和放大。接收。
所以现在在另一个服务中,我有听众,听取数据包,我想知道IntentService
是一个好的想法,用作监听器服务(因为我看到IntentService
使用Intent
s,所以我想知道可能会根据请求做一些工作),或者我应该继续使用基本服务?
我也想知道:为什么在AsyncTask
时使用IntentService
?
答案 0 :(得分:2)
我想出了一个解决方案:IntentService
IntentService
并非针对您的方案而设计。它被设计为在后台线程上做一些工作,然后消失。
我应该继续使用基本服务吗?
是的,虽然服务中可能不需要AsyncTask
,因为您通常不希望在服务中的主应用程序线程上执行任何操作。只需在服务中使用Thread
或ThreadPoolExecutor
即可。
我也想知道为什么在有IntentService时使用AsyncTask?
除其他原因外,AsyncTask
可以使用线程池; IntentService
只有一个后台主题。