2015-03-02 32 views
-1

我正在嘗試在android中使用線程池執行程序與最大線程大小爲5的單獨線程中執行特定任務,以確保可以運行五個並行任務一次。但這種方法的問題是當我關閉我的應用程序時,線程也會被終止。我想這會用完應用程序範圍。 我本來可以選擇AIDL的服務。但問題在於我需要繼續綁定和取消綁定到服務,並且在需要發送它之前我需要對該對象進行包裹。另外,當任務完成時,我需要與調用應用程序進行通信。這我可以如何實現使用廣播。我想知道如果我可以讓一個線程在單獨的進程中運行,或者我只需要使用AIDL?請幫我理解!Android:在應用程序範圍外的單獨線程中運行任務

回答

2

根據定義,線程是應用程序的一部分。然後,無法在應用程序外部添加線程。

如果您有一個永遠不會創建或使用新線程的應用程序,那麼您正在運行一個主線程,該線程使用操作系統分配給應用程序的完整CPU時間。

因爲這個,你的選擇是:

1)要離開你的應用程序運行在後臺,並連接到它。

2)使用服務方式。

希望這可以幫助你理解。

+0

感謝BTC來源。我很清楚,我認爲如果我能夠在一個單獨的過程中運行一個線程,而不是從一個被調用的線程運行,那麼這個工作就可以完成。但在這方面我沒有什麼想法。感謝您清除我的懷疑! – 2015-03-02 07:19:10

+1

只是給它一些參考:http://developer.android.com/guide/components/tasks-and-back-stack.html。在這裏,您瞭解應用程序如何基於活動。我可以把服務文件,但你似乎已經很好地知道它;) – 2015-03-02 07:27:08

1

服務聽起來像你想要的(因爲即使應用程序消失,服務也可以繼續運行)。這對AIDL來說更是一件痛苦的事情,但這就是你需要做的事情來獲得你所要求的行爲。

相關問題