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 閱讀(903) 評論(0)  編輯  收藏 所屬分類: Android
          <2014年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          2324252627281
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 瑞金市| 汝阳县| 武山县| 郎溪县| 滁州市| 土默特右旗| 剑阁县| 团风县| 彭阳县| 方山县| 胶南市| 五华县| 鲁甸县| 施甸县| 梅州市| 陇川县| 衡阳市| 邵东县| 许昌市| 黑山县| 扎兰屯市| 清水河县| 板桥市| 平远县| 郓城县| 临汾市| 美姑县| 德兴市| 汶上县| 阿克苏市| 隆德县| 全州县| 南靖县| 黄陵县| 平原县| 淳化县| 宣化县| 丰县| 永新县| 岳阳市| 安陆市|