Android onStartCommand返回值問題
阿新 • • 發佈:2019-01-01
在Android開發的過程中,每次呼叫startService(Intent)的時候,都會呼叫該Service物件的onStartCommand(Intent,int,int)方法,然後在onStartCommand方法中做一些處理。然後我們注意到這個函式有一個int的返回值,這篇文章就是簡單地講講int返回值的作用。
從Android官方文件中,我們知道onStartCommand有4種返回值:
START_STICKY
:如果service程序被kill掉,保留service的狀態為開始狀態,但不保留遞送的intent物件。隨後系統會嘗試重新建立service,由於服務狀態為開始狀態,所以建立服務後一定會呼叫onStartCommand(Intent,int,int)方法。如果在此期間沒有任何啟動命令被傳遞到service,那麼引數Intent將為null。
START_NOT_STICKY
:“非粘性的”。使用這個返回值時,如果在執行完onStartCommand後,服務被異常kill掉,系統不會自動重啟該服務。
START_REDELIVER_INTENT
:重傳Intent。使用這個返回值時,如果在執行完onStartCommand後,服務被異常kill掉,系統會自動重啟該服務,並將Intent的值傳入。
START_STICKY_COMPATIBILITY
:START_STICKY的相容版本,但不保證服務被kill後一定能重啟。
歡迎大家關注我的微信公眾號,致力於Android知識,技術,心得等的分享與交流。並提供Android學習的路線與思維導圖,幫助小白學習入門並深入學習。 。