onStartCommand方法返回的數值問題

START_REDELIVER_INTENT

         這裏主要解釋這三個變量的意義:

          1、  START_STICKY

                 在運行onStartCommand後service進程被kill後,那將保留在開始狀態,但是不保留那些傳入的intent。不久後service就會再次嘗試重新創建,因爲保留在開始狀態,在創建     service後將保證調用onstartCommand。如果沒有傳遞任何開始命令給service,那將獲取到null的intent

          2、  START_STICKY

                 在運行onStartCommand後service進程被kill後,並且沒有新的intent傳遞給它。Service將移出開始狀態,並且直到新的明顯的方法(startService)調用才重新創建。因爲如果沒有傳遞任何未決定的intent那麼service是不會啓動,也就是期間onstartCommand不會接收到任何null的intent。

           3、  START_REDELIVER_INTENT

                在運行onStartCommand後service進程被kill後,系統將會再次啓動service,並傳入最後一個intent給onstartCommand。直到調用stopSelf(int)才停止傳遞intent。如果在被kill後還有未處理好的intent,那被kill後服務還是會自動啓動。因此onstartCommand不會接收到任何null的intent。


 START_STICKY和 START_STICKY:當進程被殺死後onDestroy()是不會被執行的!

START_REDELIVER_INTENT :當進程被殺死後onDestroy()會被執行!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章