2017-05-02 70 views
3

我有一個服務,當被調用時,檢查一些狀態值,並根據狀態,可能需要異步調用一些東西(locationmanager + asynctask),或者只保存一個值並退出。可以從Android Service onStartCommand()中調用stopSelf()嗎?

我創建一個服務而不是一個intentservice,因爲正如我提到的,我需要有時創建異步任務。

我已閱讀了服務和我收集,我應該在完成時調用stopSelf。但是在我不需要做任何事情的情況下,當我從onStartCommand退出時,我完成了。

那麼,如果我在這一點上完成,它會工作,只是在onStartCommand的最後一行調用stopSelf?這種方法有什麼問題嗎?

感謝您的意見。

回答

1

如果您只是執行if檢查服務,爲什麼您在啓動服務之前不執行該檢查,從而避免消耗寶貴的資源?

若要回答您的問題 - 是的,stopSelf()將導致停止Service,但如果不使用服務,請考慮不要啓動它。

+0

是的,我真的想過。問題在於調用服務的broadcastreceiver和服務執行代碼之間的情況有可能發生改變的可能性很小。或至少這是我的想法:) – Mathias

相關問題