为什么Android服务不能在单独的线程中运行?

时间:2014-05-30 09:37:29

标签: android android-service

为什么服务不能在Android下运行自己的线程?什么是设计考虑因素?

3 个答案:

答案 0 :(得分:1)

关于灵活性的全部内容:我假设您熟悉如此多的框架,例如e.g. Volley, Retrofit etc。这些框架在场景后面有自己的Thread实现,因此如果默认情况下Service在单独的线程中执行,则 overkill 。为什么?因为线程已经由框架处理,所以为什么需要另一个线程?

另见Why is creating a Thread said to be expensive?。并且还考虑到您在Android设备中进行线程处理而不是强大的桌面。

答案 1 :(得分:0)

看看IntentService我认为这就是你要找的。

答案 2 :(得分:0)

它为您提供更大的灵活性。例如,您可以在具有特殊优先级的单独线程中运行每个请求,或者您可以将请求存储在队列中,并且只有在前一个线程完成时才启动下一个线程。 IntentService提供了一个默认配置,在大多数情况下从头开始满足您的需求。(http://developer.android.com/guide/components/services.html)。这些决定取决于您的使用案例。