2012-12-26 35 views
0

從我的研究,我相信他們有3種方式,你可以在Android上運行服務:的Android服務線程處理

  1. 在應用程序的主線程。
  2. 在與應用程序主線程分開的線程中。
  3. 在一個完全獨立的過程。

我的目標是製作一個應用程序,它具有針對圖片運行OCR並返回文本的功能。我知道選項1已經出來,因爲我的原型需要很長時間才能在雙核CPU的手機上運行OCR。我無法找到有關線程的這個主題與服務的不同進程的討論。

那麼選項2和3的優缺點是什麼?

編輯:我可能會使用IntentService,因爲我希望服務一旦從圖像中提供了文本就會終止。

回答

0

從我的研究,我相信他們有3種方式,你可以在Android上運行服務:

沒有,有兩種,你有什麼#1和#3。服務可以開始一個線程,但服務的所有生命週期方法都在主應用程序線程上。因此,從組件架構的角度來看,#1和#2是同樣的事情。

那麼選項2和3的優缺點是什麼?

選項#3浪費CPU和RAM的附加值很小,恕我直言。

我可能會使用IntentService,因爲我希望服務一旦它從圖像中提供給我文本就會終止。

IntentServiceautomatically provides you with a background thread

+0

我將使用IntentService,因爲我沒有理由在應用程序被終止後運行該服務,因爲您說單獨的進程運行起來會更加昂貴。 – user877576