posts - 93,  comments - 2,  trackbacks - 0
          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后一定能重啟。


          可能導致異常如下
          java.lang.RuntimeException: Unable to start service serviceName with null: java.lang.NullPointerException
           at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3221)
           at android.app.ActivityThread.access$2100(ActivityThread.java:156)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461)
           at android.os.Handler.dispatchMessage(Handler.java:102)
           at android.os.Looper.loop(Looper.java:157)
           at android.app.ActivityThread.main(ActivityThread.java:5872)
           at java.lang.reflect.Method.invokeNative(Native Method)
           at java.lang.reflect.Method.invoke(Method.java:515)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1069)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:885)
           at dalvik.system.NativeStart.main(Native Method)
          Caused by: java.lang.NullPointerException
           at com.ag.rhg.download.DownloadPassService.onStart(Unknown Source)
           at android.app.Service.onStartCommand(Service.java:450)
           at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3187)
           ... 10 more


          解決辦法:在Service onStart方法中做判斷
          if (null != intent) {
              。。。。。。。
          }
          posted on 2014-02-26 15:50 Terry Zou 閱讀(906) 評論(0)  編輯  收藏 所屬分類: Android
          <2014年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          2324252627281
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 进贤县| 两当县| 建湖县| 屏南县| 龙江县| 梁山县| 安新县| 临潭县| SHOW| 津南区| 穆棱市| 介休市| 西充县| 临潭县| 延边| 陵川县| 逊克县| 乐陵市| 廉江市| 舞阳县| 博罗县| 阳西县| 铜陵市| 沛县| 池州市| 沙田区| 漯河市| 溧阳市| 嘉峪关市| 广州市| 南昌市| 竹北市| 梓潼县| 东平县| 海兴县| 岑溪市| 永新县| 昆明市| 康马县| 平度市| 绥江县|