何时在android中启动单独的进程?

时间:2017-03-11 04:25:33

标签: android android-service android-intentservice

我有100个图像要从服务器下载,每个图像大小接近200kb。为了在应用程序中实现此目的,我可能不得不去创建服务或意图服务。我知道意图服务最适合这种情况,因为它在工作线程上运行。但我唯一担心的是,我的应用程序也将启动其他线程以满足不同需求。因此,太多的线程可能会导致性能下降。所以我在完全独立的过程中决定意图服务或服务是两难的。创建单独的流程可能会受益匪浅。你说什么 ?

2 个答案:

答案 0 :(得分:0)

没关系。如果你还记得你的第一个多线程课程,你可能会被告知所有线程都不能同时工作,但它就像是#34;一个运行一段时间然后第二个运行然后一个运行再运行然后可能是第三个等等#&#34 34;订单是随机的。它不会影响性能,因为对于处理器而言,如果使用2个线程或100个线程并不重要。 但是请确保您不要等待(例如前10个)首先下载图片,这样用户就不必等待太长时间才能下载图像以进行慢速连接。

答案 1 :(得分:0)

当然,在工作线程中运行的Intent Service和在主线程中运行的Service。因此,如果你想在服务中下载图像,你仍然需要创建新的线程,所以它在这里工作相同,但是Intent Service比服务有一些优势:

1.Background thread ( You no need to create Thread to download images when Service need)

2.Automatic queuing the Intents delivered to onStartCommand(), so if one Intent is being processed by onHandleIntent() on the background thread, other commands queue up waiting their turn.

3. the automatic shutdown of the IntentService when job done (in service you need to call stopService)

关于创建新流程没有必要。只需创建一个IntentService即可下载图像。使用更大的数据,您可以制作多个线程并同时下载多个部分,但每个100个图像和200kb真的不需要它。