我的服務在正在運行的過程中運行良好。即使沒有顯示主要活動,它也可以控制特定的廣播接收機。它也會以特定的時間間隔自行啓動以檢查一些參數。在檢測到不存在廣播接收器時,我可以直接停止服務,直到註冊或直接在該間隔重新啓動。與此同時,該服務將以START_NOT_STICKY模式運行。將Android服務的啓動狀態從START_STICKY更改爲START_NON_STICKY
但是,當我連接到服務並註冊接收器時,是否有辦法將其運行狀態從START_NOT_STICKY更改爲START_STICKY?或者我只需要在接收器中使用isRegistered標誌,停止並重新啓動服務並在onStartCommand中檢查其值?這是一個很好的模式,還是有更好的?
這樣做的主要原因是當應用程序不需要它時,在後臺沒有運行進程。
我已經有這樣的工作。不同之處在於我已將接收器移至服務中,因爲它已設置爲受系統保護的接收器廣播。這意味着你必須實際註冊以代碼接收它們。如果我停止服務,那麼接收器也會停止。如果您將廣播接收器放置在清單中,那麼系統會自動在單獨的進程中運行該接收器,如果您的應用程序恰好被銷燬的話。 –
但只是一個評論,這不是我的問題的答案。我問是否可以將服務狀態從START_STICKY更改爲START_NOT_STICKY。這並沒有回答。 –