我有一個Android服務在與客戶端不同的進程中運行,並且只在客戶端連接時才運行。我想知道在它的生命週期中究竟是否接受來自客戶端的請求?Android服務在其生命週期中何時可用?
我在服務生命週期的早期/晚期發出請求時遇到問題。據我所知,每個請求都是在與主Service線程分開的線程中處理的。我有以下問題:
- 請求由服務在Service.onCreate()之前或期間處理。我已經看到嘗試使用在我的Service.onCreate()中初始化的資源的異常,但它們爲空,並且日誌記錄證實主Service線程位於onCreate()中。
- 請求在Service.onDestroy()期間或之後由服務處理。異常和日誌記錄再一次證實一個線程正在處理請求並嘗試使用已經在onDestroy()中釋放的資源。
Android可以允許對未完全初始化或銷燬的服務發出請求嗎?
你試過使用隱式意圖嗎? – 2011-11-18 13:58:02
嘗試利用主線程中的所有功能。創建一個單獨的線程會給你記憶問題。在異步任務中啓動您的服務,然後在PreExecute上啓動您的服務。你可以在PostExecute上停止你的服務,但這是根據你的程序的功能 – 2011-11-18 13:59:54
你的問題是相當誤導。無論何時客戶發送相應的意圖或與其綁定,服務就是或者變得「可用」。 * Thread *的生存時間應該由服務來控制 - 反之亦然。當服務尚未創建時,工作線程如何處理請求? – JimmyB